/
accessors.go
62 lines (51 loc) · 1.63 KB
/
accessors.go
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
/* _ _
*__ _____ __ ___ ___ __ _| |_ ___
*\ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
* \ V V / __/ (_| |\ V /| | (_| | || __/
* \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
*
* Copyright © 2016 - 2019 Weaviate. All rights reserved.
* LICENSE: https://github.com/creativesoftwarefdn/weaviate/blob/develop/LICENSE.md
* DESIGN & CONCEPT: Bob van Luijt (@bobvanluijt)
* CONTACT: hello@creativesoftwarefdn.org
*/
package schema
import (
"github.com/creativesoftwarefdn/weaviate/database/schema/kind"
"github.com/creativesoftwarefdn/weaviate/models"
)
func (s *Schema) GetClass(k kind.Kind, className ClassName) *models.SemanticSchemaClass {
schema := s.SemanticSchemaFor(k)
class, err := GetClassByName(schema, string(className))
if err != nil {
return nil
}
return class
}
// FindClassByName will find either a Thing or Class by name.
func (s *Schema) FindClassByName(className ClassName) *models.SemanticSchemaClass {
if s.Things != nil {
semSchemaClass, err := GetClassByName(s.Things, string(className))
if err == nil {
return semSchemaClass
}
}
if s.Actions != nil {
semSchemaClass, err := GetClassByName(s.Actions, string(className))
if err == nil {
return semSchemaClass
}
}
return nil
}
func (s *Schema) GetProperty(kind kind.Kind, className ClassName, propName PropertyName) (error, *models.SemanticSchemaClassProperty) {
semSchemaClass, err := GetClassByName(s.SemanticSchemaFor(kind), string(className))
if err != nil {
return err, nil
}
semProp, err := GetPropertyByName(semSchemaClass, string(propName))
if err != nil {
return err, nil
}
return nil, semProp
}