Software Disclaimer

Class UML 2.3::JoinNode

Description:

Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under which the join will emit a token.

Direct Superclasses: ControlNode

Direct Subclasses:

Class Precedence List: JoinNode, ControlNode, ActivityNode, RedefinableElement, NamedElement, Element

Properties:

isCombineDuplicate : Boolean (1 1); -- source JoinNode
joinSpec : ValueSpecification (0 1); -- source JoinNode
activity : Activity (0 1); -- source ActivityNode
inGroup : ActivityGroup (0 *); -- source ActivityNode
inInterruptibleRegion : InterruptibleActivityRegion (0 *); -- source ActivityNode
inPartition : ActivityPartition (0 *); -- source ActivityNode

Partitions containing the node.
Subsets: ActivityNode.inGroup
Opposite: ActivityPartition.node

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

Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
Default value: FALSE

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
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: one_outgoing_edge() : Boolean;
Description: A join node has one outgoing edge.
Expression: self.outgoing->size() = 1

Signature: incoming_object_flow() : Boolean;
Description: If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow.
The OCL used here is not normative.
Editor's notes: oclIsTypeOf not isTypeOf, isEmpty not empty, missing ) but I am uncertain what this is trying to do.
Expression: true
Original: (self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies self.outgoing.isTypeOf(ObjectFlow)) and (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies self.outgoing.isTypeOf(ControlFlow))

Operations:

No additional operations.



Send questions or comments to [email protected].