Previous | UML Classes | Table of Contents | UML Packages | Next |
LinkAction is an abstract class for all link actions that identify their links by the objects at the ends of the links and
by the qualifiers at ends of the links.
•
Action (from BasicActions ) on page 247
A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any.
No additional attributes
• endData : LinkEndData [2..*] Data identifying one end of a link by the objects on its ends and qualifiers.
Issue 9104 -rename ‘input’ to ‘inputValue’
• inputValue : InputPin [1..*] Pins taking end objects and qualifier values as input. (Subsets Action::input)
[1] The association ends of the link end data must all be from the same association and include all and only the association
ends of that association.
Issue 8165 -remove extraneous parenthesis at end
self.endData->collect(end) = self.association()->collect(connection)
[2] The association ends of the link end data must not be static.
self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false)
[3] The input pins of the action are the same as the pins of the link end data and insertion pins.
self.input->asSet() =
let ledpins : Set = self.endData->collect(value) in if self.oclIsKindOf(LinkEndCreationData ) then ledpins->union(self.endData.oclAsType(LinkEndCreationData ).insertAt)
else ledpins
Issue 8933 -move constraint and add package header
Package CompleteActions
[4] The input pins of the action are the same as the pins of the link end data, qualifier values, and insertion pins.
self.input->asSet() = let ledpins : Set = if self.endData.oclIsKindOf(CompleteActions ::LinkEndData ) then self.endData->collect(value)->union(self.endData.qualifier.value)
else self.endData->collect(value) in
if self.oclIsKindOf(LinkEndCreationData ) then ledpins->union(self.endData.oclAsType(LinkEndCreationData ).insertAt) else ledpins
Additional operations:
[1] association operates on LinkAction. It returns the association of the action. association(); association = self.endData->asSequence().first().end.association
Issue 8165 - add cross reference to LinkEndData and clarifying sentence at end
For actions that write links, all association ends must have a corresponding input pin so that all end objects are specified
when creating or deleting a link. An input pin identifies the end object by being given a value at runtime. It has the type
of the association end and multiplicity of 1..1 (see LinkEndData (from IntermediateActions , CompleteActions ) on page
271
), since a link always has exactly one object at its ends. The input pins owned by the action are referenced by the link
end data, and as insertion pins (see LinkEndCreationData (from IntermediateActions ) on page 269), and qualifier value
pins in CompleteActions .
The behavior is undefined for links of associations that are static on any end.
For the semantics of link actions see the children of LinkAction.
No specific notation
LinkAction is introduced to abstract aspects of link actions that identify links by the objects on their ends.
In CompleteActions , LinkAction is extended for qualifiers.
LinkAction is unchanged from UML 1.5.
Issue 9123 - remove CompleteActions from header