ElementClass
The attributes of ElementClass
ElementGroup
Each ElementClass references an ElementGroup, which is part of the same ontology. The ElementGroup defines a package for all of its ElementClasses.
isGloballyUnique
isGloballyUnique determines whether an ElementClass's unique key includes the key of its parent, for ElementClasses that are part of a Composition or Extension reference.
- false (default): the parent's key is included, making the child unique within the context of that parent. This
requires:
- the parent to have identifiers,
- the Composition reference to define an Opposite Reference.
- true: the key is constructed solely from the ElementClass's own identifier attributes. These identifiers must then form a key that is unique across the entire model.
isAbstract
Set isAbstract to true for ElementClasses that are supposed to function as SuperClasses for other subClasses to
enable polymorphism. SuperClasses are supposed to be abstract, and cannot be instantiated.
isSealed
isSealed is also an option for SuperClasses. When true, the superClass cannot be extended by ElementClasses from other ontologies. This means all subclasses are known and can be enumerated.
SuperClass
When defining a SuperClass for an ElementClass, said element will be become a subclass. The ElementClass inherits all Attributes and References of its superclass.
Defining attributes
isRequired
When set to true, checks are added to make sure the attribute is always defined.
isIdentifier
When set to true, this attribute is used to identify instances of the ElementClass.
isDerived
For attributes that are not defined in the model files, but are derived from other properties. You can provide the values for these attributes with a ModelLoadingListener that attaches to the EnrichModel step.
DataType
- DataTypes are defined inside the Ontology where they are used.
- Data types are linked to a PrimitiveType, e.g. String, Boolean, Integer, Double...
- PrimitiveType BigString is the same as String, but visualized differently.
- String DataTypes can define a Format, like CamelCase, PascalCase etc.
Custom DataTypes can be defined within ontologies/{ontologyName}/model/dataTypes.