Documentation
¶
Index ¶
- Constants
- type Entity
- func (entity *Entity) CreateProperty() (*Property, error)
- func (entity *Entity) CreateRelation() (*StandaloneRelation, error)
- func (entity *Entity) FindPropertyByName(name string) (*Property, error)
- func (entity *Entity) FindPropertyByUid(uid Uid) (*Property, error)
- func (entity *Entity) FindRelationByName(name string) (*StandaloneRelation, error)
- func (entity *Entity) FindRelationByUid(uid Uid) (*StandaloneRelation, error)
- func (entity *Entity) RemoveProperty(property *Property) error
- func (entity *Entity) RemoveRelation(relation *StandaloneRelation) error
- func (entity *Entity) Validate() (err error)
- type Id
- type IdUid
- type ModelInfo
- func (model *ModelInfo) CheckRelationCycles() error
- func (model *ModelInfo) Close() error
- func (model *ModelInfo) CreateEntity(name string) (*Entity, error)
- func (model *ModelInfo) FindEntityByName(name string) (*Entity, error)
- func (model *ModelInfo) FindEntityByUid(uid Uid) (*Entity, error)
- func (model *ModelInfo) GenerateUid() (result Uid, err error)
- func (model *ModelInfo) Validate() (err error)
- func (model *ModelInfo) Write() error
- type Property
- type StandaloneRelation
- type Uid
Constants ¶
const (
// ModelVersion specifies current version of the model JSON file generated
ModelVersion = 5
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Entity ¶
type Entity struct {
Id IdUid `json:"id"`
LastPropertyId IdUid `json:"lastPropertyId"`
Name string `json:"name"`
Properties []*Property `json:"properties"`
Relations []*StandaloneRelation `json:"relations,omitempty"`
// contains filtered or unexported fields
}
Entity represents a DB entity
func CreateEntity ¶
CreateEntity constructs an Entity
func (*Entity) CreateProperty ¶
CreateProperty creates a property
func (*Entity) CreateRelation ¶ added in v0.9.0
func (entity *Entity) CreateRelation() (*StandaloneRelation, error)
CreateRelation creates relation
func (*Entity) FindPropertyByName ¶
FindPropertyByName finds a property by name
func (*Entity) FindPropertyByUid ¶
FindPropertyByUid finds a property by Uid
func (*Entity) FindRelationByName ¶ added in v0.9.0
func (entity *Entity) FindRelationByName(name string) (*StandaloneRelation, error)
FindRelationByName finds relation by name
func (*Entity) FindRelationByUid ¶ added in v0.9.0
func (entity *Entity) FindRelationByUid(uid Uid) (*StandaloneRelation, error)
FindRelationByUid Finds relation by Uid
func (*Entity) RemoveProperty ¶
RemoveProperty removes a property
func (*Entity) RemoveRelation ¶ added in v0.9.0
func (entity *Entity) RemoveRelation(relation *StandaloneRelation) error
RemoveRelation removes relation
type IdUid ¶
type IdUid string
IdUid represents a "ID:UID" string as used in the model jSON
func CreateIdUid ¶
CreateIdUid creates a string representation of ID and UID
type ModelInfo ¶
type ModelInfo struct {
// NOTE don't change order of these json exported properties because it will change users' model.json files
Note1 string `json:"_note1"`
Note2 string `json:"_note2"`
Note3 string `json:"_note3"`
Entities []*Entity `json:"entities"`
LastEntityId IdUid `json:"lastEntityId"`
LastIndexId IdUid `json:"lastIndexId"`
LastRelationId IdUid `json:"lastRelationId"`
ModelVersion int `json:"modelVersion"`
MinimumParserVersion int `json:"modelVersionParserMinimum"`
RetiredEntityUids []Uid `json:"retiredEntityUids"`
RetiredIndexUids []Uid `json:"retiredIndexUids"`
RetiredPropertyUids []Uid `json:"retiredPropertyUids"`
RetiredRelationUids []Uid `json:"retiredRelationUids"`
Version int `json:"version"` // user specified version
Rand *rand.Rand `json:"-"` // seeded random number generator
// Model Template
Package string `json:"-"`
// contains filtered or unexported fields
}
ModelInfo is a serialization interface for the model JSON file
func LoadOrCreateModel ¶
LoadOrCreateModel reads a model file or creates a new one if it doesn't exist
func (*ModelInfo) CheckRelationCycles ¶ added in v0.9.0
CheckRelationCycles finds relations cycles
func (*ModelInfo) CreateEntity ¶
CreateEntity creates an entity
func (*ModelInfo) FindEntityByName ¶
FindEntityByName finds entity by name
func (*ModelInfo) FindEntityByUid ¶
FindEntityByUid finds entity by Uid
func (*ModelInfo) GenerateUid ¶ added in v1.1.0
GenerateUid generates a unique UID
type Property ¶
type Property struct {
Id IdUid `json:"id"`
Name string `json:"name"`
IndexId *IdUid `json:"indexId,omitempty"` // a pointer because it may be nil
Type int `json:"type"`
Flags int `json:"flags,omitempty"`
RelationTarget string `json:"relationTarget,omitempty"`
// contains filtered or unexported fields
}
Property in a model
func CreateProperty ¶
CreateProperty creates a property
func (*Property) CreateIndex ¶
CreateIndex creates an index
func (*Property) RemoveIndex ¶
RemoveIndex removes an index
type StandaloneRelation ¶ added in v0.9.0
type StandaloneRelation struct {
Id IdUid `json:"id"`
Name string `json:"name"`
Target *Entity `json:"-"`
TargetId IdUid `json:"targetId"`
// contains filtered or unexported fields
}
StandaloneRelation in a model
func CreateStandaloneRelation ¶ added in v0.9.0
func CreateStandaloneRelation(entity *Entity, id IdUid) *StandaloneRelation
CreateStandaloneRelation creates a standalone relation
func (*StandaloneRelation) SetTarget ¶ added in v1.0.0
func (relation *StandaloneRelation) SetTarget(entity *Entity)
SetTarget sets the relation target entity
func (*StandaloneRelation) Validate ¶ added in v0.9.0
func (relation *StandaloneRelation) Validate() error
Validate performs initial validation of loaded data so that it doesn't have to be checked in each function