Spaces:
Running
Running
File size: 1,989 Bytes
b110593 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ 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
}
|