Software Disclaimer

Abstract Class UML 2.4.1::LinkAction

Description:

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.

Direct Superclasses: Action

Direct Subclasses: WriteLinkAction, ReadLinkAction

Class Precedence List: LinkAction, Action, ExecutableNode, ActivityNode, RedefinableElement, NamedElement, Element

Properties:

endData : LinkEndData (2 *); -- source LinkAction
inputValue : InputPin (1 *); -- source LinkAction
context : Classifier (0 1); -- source Action
input : InputPin (0 *); -- source Action
isLocallyReentrant : Boolean (1 1); -- source Action
localPostcondition : Constraint (0 *); -- source Action
localPrecondition : Constraint (0 *); -- source Action
output : OutputPin (0 *); -- source Action
handler : ExceptionHandler (0 *); -- source ExecutableNode
activity : Activity (0 1); -- source ActivityNode
inGroup : ActivityGroup (0 *); -- source ActivityNode
inInterruptibleRegion : InterruptibleActivityRegion (0 *); -- source ActivityNode
inPartition : ActivityPartition (0 *); -- source ActivityNode
inStructuredNode : StructuredActivityNode (0 1); -- source ActivityNode
incoming : ActivityEdge (0 *); -- source ActivityNode
outgoing : ActivityEdge (0 *); -- source ActivityNode
redefinedNode : ActivityNode (0 *); -- source ActivityNode
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement

The string expression used to define the name of this named element.
{composite}
Subsets: Element.ownedElement

namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
visibility : VisibilityKind (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: same_pins() : Boolean;
Description: The input pins of the action are the same as the pins of the link end data and insertion pins.
The OCL used here is not normative.
Editor's notes: Added endif.
Expression: 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 endif
Original: 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

Signature: same_association() : Boolean;
Description: 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.
The OCL used here is not normative.
Editor's notes: Removed close paren somewhere here.
Expression: self.endData->collect(end) = self.association()->collect(connection)
Original: self.endData->collect(end) = self.association()->collect(connection))

Signature: not_static() : Boolean;
Description: The association ends of the link end data must not be static.
The OCL used here is not normative.
Editor's notes: forAll not forall...but other problems too. I'll try this.
Expression: self.endData->forAll(end.isStatic = false)
Original: self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false

Operations:

Signature: association() : Association;
Description: The association operates on LinkAction. It returns the association of the action.
Expression: result = self.endData->asSequence().first().end.association



Send questions or comments to [email protected].