## org.eclipse.uml2.uml
Interface StructuredActivityNode

All Superinterfaces:
  Action, ActivityGroup, ActivityNode, Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, ExecutableNode, NamedElement, Namespace, org.eclipse.emf.common.notify.Notifier, RedefinableElement

All Known Subinterfaces:
  ConditionalNode, ExpansionRegion, LoopNode, SequenceNode

    public interface StructuredActivityNode

extends Action, Namespace, ActivityGroup

A representation of the model object 'Structured Activity Node'. A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested. Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.

The following features are supported:

- `Variable`
- `Edge`
- `Must Isolate`
- `Node`

See Also:
  `UMLPackage.getStructuredActivityNode()`

Field Summary

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Method Summary
`ActivityEdge` `createEdge(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `ActivityEdge`, with the specified 'Name', and appends it to the 'Edge' containment reference list
`ActivityNode` `createNode(java.lang.String name, org.eclipse.emf.ecore.EClass eClass)` Creates a new `ActivityNode`, with the specified 'Name', and appends it to the 'Node' containment reference list
`Variable` `createVariable(java.lang.String name, Type type)` Creates a new `Variable`, with the specified 'Name', and 'Type', and appends it to the 'Variable' containment reference list
`ActivityEdge` `getEdge(java.lang.String name)` Retrieves the first `ActivityEdge` with the specified 'Name' from the 'Edge' containment reference list
`ActivityEdge` `getEdge(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `ActivityEdge` with the specified 'Name' from the 'Edge' containment reference list
`org.eclipse.emf.common.util.EList<ActivityEdge>` `getEdges()` Returns the value of the 'Edge' containment reference list.
`ActivityNode` `getNode(java.lang.String name)` Retrieves the first `ActivityNode` with the specified 'Name' from the 'Node' containment reference list
`ActivityNode` `getNode(java.lang.String name, boolean ignoreCase, org.eclipse.emf.ecore.EClass eClass, boolean createOnDemand)` Retrieves the first `ActivityNode` with the specified 'Name' from the 'Node' containment reference list
`org.eclipse.emf.common.util.EList<ActivityNode>` `getNodes()` Returns the value of the 'Node' containment reference list.
`Variable` `getVariable(java.lang.String name, Type type)` Retrieves the first `Variable` with the specified 'Name', and 'Type' from the 'Variable' containment reference list
`Variable` `getVariable(java.lang.String name, Type type, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `Variable` with the specified 'Name', and 'Type' from the 'Variable' containment reference list
`org.eclipse.emf.common.util.EList<Variable>` `getVariables()` Returns the value of the 'Variable' containment reference list.
`boolean` `isMustIsolate()` Returns the value of the 'Must Isolate' attribute.
`void` `setMustIsolate(boolean value)` Sets the value of the '`Must Isolate`' attribute
`boolean` `validateEdges(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` The edges owned by a structured node must have source and target nodes in the structured node, and vice versa.

Methods inherited from interface org.eclipse.uml2.uml.Action
`createLocalPostcondition, createLocalPostcondition, createLocalPrecondition, createLocalPrecondition, getContext, getInput, getInput, getInputs, getLocalPostcondition, getLocalPostcondition, getLocalPostconditions, getLocalPrecondition, getLocalPrecondition, getLocalPreconditions, getOutput, getOutput, getOutputs`

Methods inherited from interface org.eclipse.uml2.uml.ExecutableNode
`createHandler, getHandlers`

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, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.uml2.uml.Namespace

`createElementImport, createElementImport, createOwnedRule, createOwnedRule, createPackageImport, createPackageImport, excludeCollisions, getElementImport, getElementImport, getElementImports, getImportedElements, getImportedMember, getImportedMember, getImportedMembers, getImportedPackages, getMember, getMember, getMembers, getNamesOfMember, getOwnedMember, getOwnedMember, getOwnedMembers, getOwnedRule, getOwnedRule, getOwnedRules, getPackageImport, getPackageImport, getPackageImports, importMembers, membersAreDistinguishable, validateMembersDistinguishable`

Methods inherited from interface org.eclipse.uml2.uml.ActivityGroup
`getContainedEdge, getContainedEdge, getContainedEdges, getContainedNode, getContainedNode, getContainedNodes, getInActivity, getSubgroups, getSuperGroup, setInActivity, validateGroupOwned, validateNodesAndEdges, validateNotContained`

Method Detail

### getVariables

    org.eclipse.emf.common.util.EList<Variable> getVariables()

  Returns the value of the 'Variable' containment reference list. The list contents are of type `Variable`. It is bidirectional and its opposite is '`Scope`'.

  This feature subsets the following features:

  - '`Owned Member`'
  A variable defined in the scope of the structured activity node. It has no value and may not be accessed

  Returns:
    the value of the 'Variable' containment reference list.
  See Also:
    `UMLPackage.getStructuredActivityNode_Variable()`, `Variable.getScope()`

### createVariable

    Variable createVariable(java.lang.String name,
                            Type type)

  Creates a new `Variable`, with the specified 'Name', and 'Type', and appends it to the 'Variable' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `Variable`, or `null`.
    `type` - The 'Type' for the new `Variable`, or `null`.
  Returns:
    The new `Variable`.
  See Also:
    `getVariables()`

### getVariable

    Variable getVariable(java.lang.String name,
                         Type type)

  Retrieves the first `Variable` with the specified 'Name', and 'Type' from the 'Variable' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Variable` to retrieve, or `null`.
    `type` - The 'Type' of the `Variable` to retrieve, or `null`.
  Returns:
    The first `Variable` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getVariables()`

### getVariable

    Variable getVariable(java.lang.String name,
                         Type type,
                         boolean ignoreCase,
                         boolean createOnDemand)

  Retrieves the first `Variable` with the specified 'Name', and 'Type' from the 'Variable' containment reference list.

  Parameters:
    `name` - The 'Name' of the `Variable` to retrieve, or `null`.
    `type` - The 'Type' of the `Variable` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `Variable` on demand if not found.
  Returns:
    The first `Variable` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getVariables()`

### getNodes

    org.eclipse.emf.common.util.EList<ActivityNode> getNodes()

  Returns the value of the 'Node' containment reference list. The list contents are of type `ActivityNode`. It is bidirectional and its opposite is '`In Structured Node`'.

  This feature subsets the following features:

  - '`Contained Node`'
  Nodes immediately contained in the group.

  Returns:
    the value of the 'Node' containment reference list.
  See Also:
    `UMLPackage.getStructuredActivityNode_Node()`, `ActivityNode.getInStructuredNode()`

### createNode

    ActivityNode createNode(java.lang.String name,
                            org.eclipse.emf.ecore.EClass eClass)

  Creates a new `ActivityNode`, with the specified 'Name', and appends it to the 'Node' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `ActivityNode`, or `null`.
    `eClass` - The Ecore class of the `ActivityNode` to create.
  Returns:
    The new `ActivityNode`.
  See Also:
    `getNodes()`

### getNode

    ActivityNode getNode(java.lang.String name)

  Retrieves the first `ActivityNode` with the specified 'Name' from the 'Node' containment reference list.

  Parameters:
    `name` - The 'Name' of the `ActivityNode` to retrieve, or `null`.
  Returns:
    The first `ActivityNode` with the specified 'Name', or `null`.
  See Also:
    `getNodes()`

### getNode

    ActivityNode getNode(java.lang.String name,
                         boolean ignoreCase,
                         org.eclipse.emf.ecore.EClass eClass,
                         boolean createOnDemand)

  Retrieves the first `ActivityNode` with the specified 'Name' from the 'Node' containment reference list.

  Parameters:
    `name` - The 'Name' of the `ActivityNode` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `ActivityNode` to retrieve, or `null`.
    `createOnDemand` - Whether to create a `ActivityNode` on demand if not found.
  Returns:
    The first `ActivityNode` with the specified 'Name', or `null`.
  See Also:
    `getNodes()`

### isMustIsolate

    boolean isMustIsolate()

  Returns the value of the 'Must Isolate' attribute. The default value is `"false"`. If true, then the actions in the node execute in isolation from actions outside the node.

  Returns:
    the value of the 'Must Isolate' attribute.
  See Also:
    `setMustIsolate(boolean)`, `UMLPackage.getStructuredActivityNode_MustIsolate()`

### setMustIsolate

    void setMustIsolate(boolean value)

  Sets the value of the '`Must Isolate`' attribute.

  Parameters:
    `value` - the new value of the 'Must Isolate' attribute.
  See Also:
    `isMustIsolate()`

### getEdges

    org.eclipse.emf.common.util.EList<ActivityEdge> getEdges()

  Returns the value of the 'Edge' containment reference list. The list contents are of type `ActivityEdge`. It is bidirectional and its opposite is '`In Structured Node`'.

  This feature subsets the following features:

  - '`Contained Edge`'
  Edges immediately contained in the structured node.

  Returns:
    the value of the 'Edge' containment reference list.
  See Also:
    `UMLPackage.getStructuredActivityNode_Edge()`, `ActivityEdge.getInStructuredNode()`

### createEdge

    ActivityEdge createEdge(java.lang.String name,
                            org.eclipse.emf.ecore.EClass eClass)

  Creates a new `ActivityEdge`, with the specified 'Name', and appends it to the 'Edge' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `ActivityEdge`, or `null`.
    `eClass` - The Ecore class of the `ActivityEdge` to create.
  Returns:
    The new `ActivityEdge`.
  See Also:
    `getEdges()`

### getEdge

    ActivityEdge getEdge(java.lang.String name)

  Retrieves the first `ActivityEdge` with the specified 'Name' from the 'Edge' containment reference list.

  Parameters:
    `name` - The 'Name' of the `ActivityEdge` to retrieve, or `null`.
  Returns:
    The first `ActivityEdge` with the specified 'Name', or `null`.
  See Also:
    `getEdges()`

### getEdge

    ActivityEdge getEdge(java.lang.String name,
                         boolean ignoreCase,
                         org.eclipse.emf.ecore.EClass eClass,
                         boolean createOnDemand)

  Retrieves the first `ActivityEdge` with the specified 'Name' from the 'Edge' containment reference list.

  Parameters:
    `name` - The 'Name' of the `ActivityEdge` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `eClass` - The Ecore class of the `ActivityEdge` to retrieve, or `null`.
    `createOnDemand` - Whether to create a `ActivityEdge` on demand if not found.
  Returns:
    The first `ActivityEdge` with the specified 'Name', or `null`.
  See Also:
    `getEdges()`

### validateEdges

    boolean validateEdges(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                          java.util.Map<java.lang.Object,java.lang.Object> context)

  The edges owned by a structured node must have source and target nodes in the structured node, and vice versa. true

  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.