Skip to main content

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.