Spaces:
Running
Running
// _ _ | |
// __ _____ __ ___ ___ __ _| |_ ___ | |
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ | |
// \ V V / __/ (_| |\ V /| | (_| | || __/ | |
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| | |
// | |
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. | |
// | |
// CONTACT: [email protected] | |
// | |
package schema | |
import ( | |
"strings" | |
"github.com/weaviate/weaviate/entities/models" | |
) | |
// Newtype to denote that this string is used as a Class name | |
type ClassName string | |
func (c ClassName) String() string { | |
return string(c) | |
} | |
// Newtype to denote that this string is used as a Property name | |
type PropertyName string | |
func (p PropertyName) String() string { | |
return string(p) | |
} | |
type ClassAndProperty struct { | |
ClassName ClassName | |
PropertyName PropertyName | |
} | |
// Describes the schema that is used in Weaviate. | |
type Schema struct { | |
Objects *models.Schema | |
} | |
func Empty() Schema { | |
return Schema{ | |
Objects: &models.Schema{ | |
Classes: []*models.Class{}, | |
}, | |
} | |
} | |
// Return one of the semantic schema's | |
func (s *Schema) SemanticSchemaFor() *models.Schema { | |
return s.Objects | |
} | |
func UppercaseClassName(name string) string { | |
if len(name) < 1 { | |
return name | |
} | |
if len(name) == 1 { | |
return strings.ToUpper(name) | |
} | |
return strings.ToUpper(string(name[0])) + name[1:] | |
} | |
func LowercaseAllPropertyNames(props []*models.Property) []*models.Property { | |
for i, prop := range props { | |
props[i].Name = LowercaseFirstLetter(prop.Name) | |
} | |
return props | |
} | |
func LowercaseFirstLetter(name string) string { | |
if len(name) < 1 { | |
return name | |
} | |
if len(name) == 1 { | |
return strings.ToLower(name) | |
} | |
return strings.ToLower(string(name[0])) + name[1:] | |
} | |
func LowercaseFirstLetterOfStrings(in []string) []string { | |
if len(in) < 1 { | |
return in | |
} | |
out := make([]string, len(in)) | |
for i, str := range in { | |
out[i] = LowercaseFirstLetter(str) | |
} | |
return out | |
} | |