Previous | UML Classes | Table of Contents | UML Packages | Next |
LinkEndCreationData is not an action. It is an element that identifies links. It identifies one end of a link to be created
by CreateLinkAction .
•
LinkEndData (from IntermediateActions , CompleteActions ) on page 271.
This class is required when using CreateLinkAction to specify insertion points for ordered ends and for replacing all links
at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects
and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the
user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData .
Each association end is identified separately with an instance of the LinkEndData class.
Issue 8169 -add clarification
Qualifier values are used in CompleteActions to specify links to create.
• isReplaceAll : Boolean [1..1] = false Specifies whether the existing links emanating from the object on this end should
be destroyed before creating a new link.
• insertAt : InputPin [0..1] Specifies where the new link should be inserted for ordered association ends, or where an existing
link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for
association ends that are not ordered.
[1] LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.
self.LinkAction.oclIsKindOf(CreateLinkAction )
[2] Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural
and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.
let insertAtPins : Collection = self.insertAt in
if self.end.ordering = #unordered
then insertAtPins->size() = 0
else let insertAtPin : InputPin = insertAts->asSequence()->first() in
insertAtPins->size() = 1
and insertAtPin.type = UnlimitedNatural
and insertAtPin.multiplicity.is(1,1))
endif
See CreateLinkAction , also see LinkAction and all its children.
No specific notation
LinkEndCreationData is introduced to indicate which inputs are for which link end objects and qualifiers.
LinkEndCreationData is unchanged from UML 1.5.