org.eclipse.uml2.uml
Interface JoinNode

All Superinterfaces:
ActivityNode, ControlNode, Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, NamedElement, org.eclipse.emf.common.notify.Notifier, RedefinableElement

public interface JoinNode
extends ControlNode

A representation of the model object 'Join Node'. A join node is a control node that synchronizes multiple flows. 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.

The following features are supported:

See Also:
UMLPackage.getJoinNode()

Field Summary
 
Fields inherited from interface org.eclipse.uml2.uml.NamedElement
SEPARATOR
 
Method Summary
 ValueSpecification createJoinSpec(java.lang.String name, Type type, org.eclipse.emf.ecore.EClass eClass)
          Creates a new ValueSpecification, with the specified 'Name', and 'Type', and sets the 'Join Spec' containment reference
 ValueSpecification getJoinSpec()
          Returns the value of the 'Join Spec' containment reference.
 boolean isCombineDuplicate()
          Returns the value of the 'Is Combine Duplicate' attribute.
 void setIsCombineDuplicate(boolean value)
          Sets the value of the 'Is Combine Duplicate' attribute
 void setJoinSpec(ValueSpecification value)
          Sets the value of the 'Join Spec' containment reference
 boolean validateIncomingObjectFlow(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow.
 boolean validateOneOutgoingEdge(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)
          A join node has one outgoing edge.
 
Methods inherited from interface org.eclipse.uml2.uml.ActivityNode
getActivity, getIncoming, getIncoming, getIncomings, getInGroups, getInInterruptibleRegions, getInPartition, getInPartition, getInPartitions, getInStructuredNode, getOutgoing, getOutgoing, getOutgoings, getRedefinedNode, getRedefinedNode, getRedefinedNodes, setActivity, setInStructuredNode, validateOwned, validateOwnedStructuredNode
 
Methods inherited from interface org.eclipse.uml2.uml.RedefinableElement
getRedefinedElement, getRedefinedElement, getRedefinedElements, getRedefinitionContext, getRedefinitionContext, getRedefinitionContexts, isConsistentWith, isLeaf, isRedefinitionContextValid, setIsLeaf, validateRedefinitionConsistent, validateRedefinitionContextValid
 
Methods inherited from interface org.eclipse.uml2.uml.NamedElement
allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership
 
Methods inherited from interface org.eclipse.uml2.uml.Element
addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf
 
Methods inherited from interface org.eclipse.emf.ecore.EModelElement
getEAnnotation, getEAnnotations
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
 

Method Detail

isCombineDuplicate

boolean isCombineDuplicate()
Returns the value of the 'Is Combine Duplicate' attribute. The default value is "true". Tells whether tokens having objects with the same identity are combined into one by the join.

Returns:
the value of the 'Is Combine Duplicate' attribute.
See Also:
setIsCombineDuplicate(boolean), UMLPackage.getJoinNode_IsCombineDuplicate()

setIsCombineDuplicate

void setIsCombineDuplicate(boolean value)
Sets the value of the 'Is Combine Duplicate' attribute.

Parameters:
value - the new value of the 'Is Combine Duplicate' attribute.
See Also:
isCombineDuplicate()

getJoinSpec

ValueSpecification getJoinSpec()
Returns the value of the 'Join Spec' containment reference.

This feature subsets the following features:

A specification giving the conditions under which the join with emit a token. Default is "and".

Returns:
the value of the 'Join Spec' containment reference.
See Also:
setJoinSpec(ValueSpecification), UMLPackage.getJoinNode_JoinSpec()

setJoinSpec

void setJoinSpec(ValueSpecification value)
Sets the value of the 'Join Spec' containment reference.

Parameters:
value - the new value of the 'Join Spec' containment reference.
See Also:
getJoinSpec()

createJoinSpec

ValueSpecification createJoinSpec(java.lang.String name,
                                  Type type,
                                  org.eclipse.emf.ecore.EClass eClass)
Creates a new ValueSpecification, with the specified 'Name', and 'Type', and sets the 'Join Spec' containment reference.

Parameters:
name - The 'Name' for the new ValueSpecification, or null.
type - The 'Type' for the new ValueSpecification, or null.
eClass - The Ecore class of the ValueSpecification to create.
Returns:
The new ValueSpecification.
See Also:
getJoinSpec()

validateOneOutgoingEdge

boolean validateOneOutgoingEdge(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                java.util.Map<java.lang.Object,java.lang.Object> context)
A join node has one outgoing edge. self.outgoing->size() = 1

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

validateIncomingObjectFlow

boolean validateIncomingObjectFlow(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                   java.util.Map<java.lang.Object,java.lang.Object> context)
If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow. (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))

Parameters:
diagnostics - The chain of diagnostics to which problems are to be appended.
context - The cache of context-specific information.

Copyright 2003, 2007 IBM Corporation and others.
All Rights Reserved.