//Artefact:ModelClass/com/sphenon/modelling/xmodel/XMState

Description

Properties of state management in general

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/IsTransient

Description

If true, on class level, state is not maintained at all. If true, on feature level, the respective attribute or association is not persistent.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/IsIdentifier

Description

If true, on feature level, the respective attribute or association serves as a primary key (component) of this class, i.e. specifically an ORM will use this attribute instead of generating an artificial internal ID attribute. Note that there is a related property in XMLogic.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/Filter

Description

A list of filters, which filter, depending on aspects defined in the current context, the persistent data that is visible.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/InteractionHooks

Description

If true, the interaction layer (IL) classes (i.e. factories, editors, etc.) will implement hooks to inform the state layer of relevant state events.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/OnDemandDefaultInitialiser

Description

The result of this expression is assigned to persistent members if they are accessed by their getter and have a null value assigned.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/BeforeStateGetBody

Description

Code, that is inserted in automatically generated state set methods before the actual value is returned.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/BeforeStateSetBody

Description

Code, that is inserted in automatically generated state set methods before the actual assignment takes place.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/AfterStateSetBody

Description

Code, that is inserted in automatically generated state set methods after the actual assignment took place.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/PersistentType

Description

Type of a persistent attribute used to store the corresponding ADO attribute. This persistent attribute is either an additional, hidden attribute in the ADO instance or it is used solely in the TSM layer state class.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/PersistentTypeMapper

Description

An expression, that creates an ADO attribute instance based on a given persistent attribute instance, see "PersistentType". See also "PersistentTypeMapper" and "PersistentTypeReverseMapper".
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/PersistentTypeReverseMapper

Description

An expression, that extracts (or creates) an persistent attribute instance from a given ADO attribute instance, see "PersistentType".
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/ManageMappedInstance

Description

If true, next to the mapped persistant instance of an attribute it's application domain type instance is kept in the state adapter, too. Reasons might be caching or alternate conversion procedures, e.g. loading into existing instead of creating new values.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/MappedOnDemandDefaultInitialiser

Description

The result of this expression is assigned to application domain type instance members if they are accessed by their getter and have a null value assigned.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/TableName

Description

Name of the associated database table. Defaults to class name in uppercase/underscore notation with the prefix "T_".
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/TablePrefix

Description

If defined, all tables in the respective package will be prefixed with this name.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☑ packages ∙ ☐ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/TableVersion

Description

If used on classes, the version identifier of the associated database table. Defaults to empty.
If used on packages, it applies to all classes contained in this package.
If used on attributes or associations in the technical model, the version identifier of the associated database table of the attribute type or of the type at the other end of an association. Used to ensure consistency when migrating database schemas.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☑ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/VersionCrossCheck

Description

If true, during generation of JPA mappings a crosscheck is performed whether a previous mapping for the given table version was already created and whether any referenced tables (according to model associations) have the same versions. If not, an error is reported, explaining that the table version at hand needs to be incremented as well.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/DiscriminatorValue

Description

Name of the class to be used as a discriminator in associated database tables. Used in inheritance relationships in the base table to identify the specific derived class. Defaults to the interface name plus possibly an implementation postfix. To save storage space, the use of very short abbreviations can be considered. In that case, typically the size of the corresponding column in relational tables ha to be shorteded, too (e.g. default in JPA/eclipselink is varchar(31)).
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/ColumnName

Description

Name of the column in the associated database table. Defaults to attribute name in uppercase/underscore notation.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/ColumnSize

Description

Size of a column field in the associated database table.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/UniquenessGroup

Description

Deprecated: please use the more comprehensive solution with Stereotype Unique and and property XMUnique/Groups.
Optionally specifies the name of a group of attributes which have to be unique in conjunction. In other words, all attributes with the same UniquenessGroup name belong to such a group, whose value combinations are restricted by a uniqueness constraint.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/ValueAggregate

Description

Name of an aggregate to load on demand, which defines instance values for the respective class.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/SetupScript

Description

Name of a script to run on demand, which is intended to setup instances of the respective class.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/Constant

Description

Apart from being initialised, the values of this class are not modified, i.e. the respective AllSet is constant. This is typically used with enumerations. Specifically, an underlying database is not required to load these values more than once and keep the respective query result in memory.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/Cascading

Description

Controls cascading behaviour, i.e. whether the ORM/DBMS shall propagate deletes or refreshes to contained subobjects.
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/IndexDefinition

Description

Database index definition
Applies to
▸ Model level: ☑ logical model ∙ ☑ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/ChangeLog

Description

A list of changes of the respective feature or element, ordered by occurence, from first change to latest change. For each change, the respective table version is given.
The list is used to automatically create migration scripts which can be used to move data from an existing database to a database with a new version and a respective modified schema.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☑ packages ∙ ☑ classes ∙ ☑ attributes ∙ ☑ operations ∙ ☑ association ends ∙ ☑ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/MergeIntoScope

Description

A list of BLC events when this feature will be automatically read into the current TSM transaction scope.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☐ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/Versioning

Description

Indicates whether, and if so, how, the data of the respective model element is versioned at runtime.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☑ attributes ∙ ☐ operations ∙ ☑ association ends ∙ ☐ states

//Artefact:ModelAttribute/com/sphenon/modelling/xmodel/XMState/AggregateRealm

Description

Indicates an aggregate realm to which this class and it's instances belong. Realms indicate that the contained items belong logically together, typically they are used, stored, loaded, imported and exported as a bundle, while items outside the realm might just be referenced in some way.
This concept is related to DDD's 'Bounded Contexts'.
Applies to
▸ Model level: ☑ logical model ∙ ☐ technical model
▸ Model elements: ☐ packages ∙ ☑ classes ∙ ☐ attributes ∙ ☐ operations ∙ ☐ association ends ∙ ☐ states