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