Transient links

Syntax

expression#linkName

where:

Description

A transient link is a named virtual link between two objects of any kind. These links do not exist before the evaluation and are automatically garbaged at the end of the evaluation process. Theses links are virtual, have no restriction on the type of objects to connect and do never alter the models, while modeling link are reserved to model elements and will modify the related objects. Transient links are particulary useful to add traceability between a source model element and a target model element.

An object may be connected to zero, one or many objects through any transient link. This expression is used to retrieve this list of target objects. The returned list is an instance of the interface com.sodius.mdw.core.eval.TransientLinkList.

The first time a transient link is retrieved for a particular source object, an empty list is returned. You may add target objects directly in this list. A target object may appear only once in a transient link list: any additionnal add() call of the same object would be ignored.

The transient link name is completly free and up to you.

You can see transient links as a map where :

Examples

// Gets the first target object of a class using the link "targets"
// Note: first() returns null if the list is empty
myClass#targets.first()

// Adds a new target object to the link "performed"
myClass.namespace#performed.add(aTarget)