func()

in service/keyspaces/api.go [4947:5006]


func (s *SchemaDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SchemaDefinition"}
	if s.AllColumns == nil {
		invalidParams.Add(request.NewErrParamRequired("AllColumns"))
	}
	if s.AllColumns != nil && len(s.AllColumns) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AllColumns", 1))
	}
	if s.PartitionKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("PartitionKeys"))
	}
	if s.PartitionKeys != nil && len(s.PartitionKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PartitionKeys", 1))
	}
	if s.AllColumns != nil {
		for i, v := range s.AllColumns {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AllColumns", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ClusteringKeys != nil {
		for i, v := range s.ClusteringKeys {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ClusteringKeys", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.PartitionKeys != nil {
		for i, v := range s.PartitionKeys {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionKeys", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.StaticColumns != nil {
		for i, v := range s.StaticColumns {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StaticColumns", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}