Skip to content
This repository has been archived by the owner on Mar 31, 2019. It is now read-only.

ItemDescription

Andrew Branson edited this page Jul 31, 2015 · 1 revision

The point of a Description-driven system is the instantiation of objects from only data, i.e. descriptions. In CRISTAL, Items are instantiated in this way, from Item Descriptions.

Crucially, Item Descriptions are also Items, meaning that they themselves may be defined and instantiated from other Items. This mechanism is central to CRISTAL's application as a modelling tool, as Item descriptions can follow lifecycles and generate provenance just the same as Item instances.

Description data

For an Item to be considered a description, it must contain the following:

  • A PropertyDescription that defines the Properties of its instances. This is stored as an outcome, so should be generated by an Activity in its lifecycle.
  • A Dependency to a lifecycle definition. This will be an Item containing a numbered version Viewpoint of a CompositeActivityDef outcome.

Optionally, it may contain:

Item descriptions support concurrent versioning. The PropertyDescription outcome may have numbered Viewpoints pointing to specific definitions, and the Collections may have numbered snapshots.

Instantiation

To instantiate a new Item, the PredefinedStep CreateItemFromDescription must be called on the Item description. This requires at least two parameters: the name of the new Item and domain context in which is should be initially created. Additionally, it may be given a third parameter specifying the description version to use for the instantiation (default 'last'), and a fourth, giving initial values for the defined properties as an XML-marshalled PropertyArrayList.

Clone this wiki locally