Package org.jbpm.workflow.core.node

## Class ForEachNode

- java.lang.Object
- - org.jbpm.workflow.core.impl.NodeImpl
  - - org.jbpm.workflow.core.impl.ExtendedNodeImpl
    - - org.jbpm.workflow.core.node.StateBasedNode
      - - org.jbpm.workflow.core.node.CompositeNode
        - - org.jbpm.workflow.core.node.CompositeContextNode
          - - org.jbpm.workflow.core.node.ForEachNode

- All Implemented Interfaces:
    `Serializable`, `Contextable`, `ContextContainer`, `ContextResolver`, `Node`, `EventNodeInterface`, `NodeContainer`, `org.kie.api.definition.process.Node`, `org.kie.api.definition.process.NodeContainer`

      public class ForEachNode
      extends CompositeContextNode

  A for each node. This node activates the contained subflow for each element of a collection. The node continues if all activated the subflow has been completed for each of the elements in the collection.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `ForEachNode.ForEachJoinNode` |
    `static class` | `ForEachNode.ForEachSplitNode` |

    - ### Nested classes/interfaces inherited from class org.jbpm.workflow.core.node.CompositeNode

      `CompositeNode.CompositeNodeEnd, CompositeNode.CompositeNodeStart, CompositeNode.NodeAndType`

  - ### Field Summary

    - ### Fields inherited from class org.jbpm.workflow.core.impl.ExtendedNodeImpl

      `EVENT_NODE_BOUNDARY, EVENT_NODE_ENTER, EVENT_NODE_EXIT`

    - ### Fields inherited from class org.jbpm.workflow.core.impl.NodeImpl

      `constraints, EMPTY_NODE_ARRAY`

    - ### Fields inherited from interface org.jbpm.workflow.core.Node

      `CONNECTION_DEFAULT_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ForEachNode()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addContext​(Context context)` |
    `void` | `addNode​(org.kie.api.definition.process.Node node)` | Method for adding a node to this node container.
    `String` | `getCollectionExpression()` |
    `String` | `getCompletionConditionExpression()` |
    `CompositeContextNode` | `getCompositeNode()` |
    `Context` | `getContext​(String contextType)` |
    `Context` | `getContext​(String contextType, long id)` |
    `List<Context>` | `getContexts​(String contextType)` |
    `ForEachNode.ForEachJoinNode` | `getForEachJoinNode()` |
    `ForEachNode.ForEachSplitNode` | `getForEachSplitNode()` |
    `CompositeNode.NodeAndType` | `getLinkedIncomingNode​(String inType)` |
    `CompositeNode.NodeAndType` | `getLinkedOutgoingNode​(String inType)` |
    `org.kie.api.definition.process.Node` | `getNode​(long id)` |
    `org.kie.api.definition.process.Node[]` | `getNodes()` |
    `String` | `getOutputCollectionExpression()` |
    `String` | `getOutputVariableName()` |
    `DataType` | `getOutputVariableType()` |
    `String` | `getVariableName()` |
    `DataType` | `getVariableType()` |
    `protected void` | `internalAddNode​(org.kie.api.definition.process.Node node)` |
    `CompositeNode.NodeAndType` | `internalGetLinkedIncomingNode​(String inType)` |
    `CompositeNode.NodeAndType` | `internalGetLinkedOutgoingNode​(String inType)` |
    `org.kie.api.definition.process.Node` | `internalGetNode​(long id)` |
    `org.kie.api.definition.process.Node[]` | `internalGetNodes()` |
    `protected void` | `internalRemoveNode​(org.kie.api.definition.process.Node node)` |
    `boolean` | `isSequential()` |
    `boolean` | `isWaitForCompletion()` |
    `void` | `linkIncomingConnections​(String inType, long inNodeId, String inNodeType)` |
    `void` | `linkOutgoingConnections​(long outNodeId, String outNodeType, String outType)` |
    `void` | `removeNode​(org.kie.api.definition.process.Node node)` | Method for removing a node from this node container
    `void` | `setCollectionExpression​(String collectionExpression)` |
    `void` | `setCompletionConditionExpression​(String completionConditionExpression)` |
    `void` | `setDefaultContext​(Context context)` |
    `void` | `setOutputCollectionExpression​(String collectionExpression)` |
    `void` | `setOutputVariable​(String variableName, DataType type)` |
    `void` | `setSequential​(boolean sequential)` |
    `void` | `setVariable​(String variableName, DataType type)` |
    `void` | `setWaitForCompletion​(boolean waitForCompletion)` |

    - ### Methods inherited from class org.jbpm.workflow.core.node.CompositeContextNode

      `getDefaultContext, resolveContext`

    - ### Methods inherited from class org.jbpm.workflow.core.node.CompositeNode

      `acceptsEvent, acceptsEvent, addIncomingConnection, addOutgoingConnection, getLinkedIncomingNodes, getLinkedOutgoingNodes, getNodeByUniqueId, isAutoComplete, isCancelRemainingInstances, linkIncomingConnections, linkOutgoingConnections, removeIncomingConnection, removeOutgoingConnection, setAutoComplete, setCancelRemainingInstances, validateAddIncomingConnection, validateAddOutgoingConnection, validateRemoveIncomingConnection, validateRemoveOutgoingConnection`

    - ### Methods inherited from class org.jbpm.workflow.core.node.StateBasedNode

      `addBoundaryEvents, addTimer, getBoundaryEvents, getTimers, removeAllTimers, setBoundaryEvents`

    - ### Methods inherited from class org.jbpm.workflow.core.impl.ExtendedNodeImpl

      `containsActions, getActions, getActionTypes, setActions`

    - ### Methods inherited from class org.jbpm.workflow.core.impl.NodeImpl

      `addConstraint, clearIncomingConnection, clearOutgoingConnection, getConstraint, getConstraints, getDefaultIncomingConnections, getDefaultOutgoingConnections, getFrom, getId, getIncomingConnections, getIncomingConnections, getMetaData, getMetaData, getName, getNodeContainer, getNodeType, getNodeUniqueId, getOutgoingConnections, getOutgoingConnections, getTo, getUniqueId, internalGetConstraint, setConstraint, setContext, setId, setMetaData, setMetaData, setName, setNodeContainer, setNodeType`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ForEachNode

          public ForEachNode()

  - ### Method Detail

    - #### getVariableName

          public String getVariableName()

    - #### getVariableType

          public DataType getVariableType()

    - #### getOutputVariableName

          public String getOutputVariableName()

    - #### getOutputVariableType

          public DataType getOutputVariableType()

    - #### getCompositeNode

          public CompositeContextNode getCompositeNode()

    - #### getForEachSplitNode

          public ForEachNode.ForEachSplitNode getForEachSplitNode()

    - #### getForEachJoinNode

          public ForEachNode.ForEachJoinNode getForEachJoinNode()

    - #### addNode

          public void addNode​(org.kie.api.definition.process.Node node)

      Description copied from interface: `NodeContainer`
      Method for adding a node to this node container. Note that the node will get an id unique for this node container.
      Specified by:
        `addNode` in interface `NodeContainer`
      Overrides:
        `addNode` in class `CompositeNode`
      Parameters:
        `node` - the node to be added

    - #### internalAddNode

          protected void internalAddNode​(org.kie.api.definition.process.Node node)

      Overrides:
        `internalAddNode` in class `CompositeNode`

    - #### getNode

          public org.kie.api.definition.process.Node getNode​(long id)

      Specified by:
        `getNode` in interface `org.kie.api.definition.process.NodeContainer`
      Overrides:
        `getNode` in class `CompositeNode`

    - #### internalGetNode

          public org.kie.api.definition.process.Node internalGetNode​(long id)

      Specified by:
        `internalGetNode` in interface `NodeContainer`
      Overrides:
        `internalGetNode` in class `CompositeNode`

    - #### getNodes

          public org.kie.api.definition.process.Node[] getNodes()

      Specified by:
        `getNodes` in interface `org.kie.api.definition.process.NodeContainer`
      Overrides:
        `getNodes` in class `CompositeNode`

    - #### internalGetNodes

          public org.kie.api.definition.process.Node[] internalGetNodes()

      Overrides:
        `internalGetNodes` in class `CompositeNode`

    - #### removeNode

          public void removeNode​(org.kie.api.definition.process.Node node)

      Description copied from interface: `NodeContainer`
      Method for removing a node from this node container
      Specified by:
        `removeNode` in interface `NodeContainer`
      Overrides:
        `removeNode` in class `CompositeNode`
      Parameters:
        `node` - the node to be removed

    - #### internalRemoveNode

          protected void internalRemoveNode​(org.kie.api.definition.process.Node node)

      Overrides:
        `internalRemoveNode` in class `CompositeNode`

    - #### linkIncomingConnections

          public void linkIncomingConnections​(String inType,
                                              long inNodeId,
                                              String inNodeType)

      Overrides:
        `linkIncomingConnections` in class `CompositeNode`

    - #### linkOutgoingConnections

          public void linkOutgoingConnections​(long outNodeId,
                                              String outNodeType,
                                              String outType)

      Overrides:
        `linkOutgoingConnections` in class `CompositeNode`

    - #### getLinkedIncomingNode

          public CompositeNode.NodeAndType getLinkedIncomingNode​(String inType)

      Overrides:
        `getLinkedIncomingNode` in class `CompositeNode`

    - #### internalGetLinkedIncomingNode

          public CompositeNode.NodeAndType internalGetLinkedIncomingNode​(String inType)

      Overrides:
        `internalGetLinkedIncomingNode` in class `CompositeNode`

    - #### getLinkedOutgoingNode

          public CompositeNode.NodeAndType getLinkedOutgoingNode​(String inType)

      Overrides:
        `getLinkedOutgoingNode` in class `CompositeNode`

    - #### internalGetLinkedOutgoingNode

          public CompositeNode.NodeAndType internalGetLinkedOutgoingNode​(String inType)

      Overrides:
        `internalGetLinkedOutgoingNode` in class `CompositeNode`

    - #### setVariable

          public void setVariable​(String variableName,
                                  DataType type)

    - #### setOutputVariable

          public void setOutputVariable​(String variableName,
                                        DataType type)

    - #### getCollectionExpression

          public String getCollectionExpression()

    - #### setCollectionExpression

          public void setCollectionExpression​(String collectionExpression)

    - #### getOutputCollectionExpression

          public String getOutputCollectionExpression()

    - #### setOutputCollectionExpression

          public void setOutputCollectionExpression​(String collectionExpression)

    - #### isWaitForCompletion

          public boolean isWaitForCompletion()

    - #### setWaitForCompletion

          public void setWaitForCompletion​(boolean waitForCompletion)

    - #### isSequential

          public boolean isSequential()

    - #### setSequential

          public void setSequential​(boolean sequential)

    - #### getContext

          public Context getContext​(String contextType)

      Specified by:
        `getContext` in interface `Contextable`
      Overrides:
        `getContext` in class `NodeImpl`

    - #### addContext

          public void addContext​(Context context)

      Specified by:
        `addContext` in interface `ContextContainer`
      Overrides:
        `addContext` in class `CompositeContextNode`

    - #### setDefaultContext

          public void setDefaultContext​(Context context)

      Specified by:
        `setDefaultContext` in interface `ContextContainer`
      Overrides:
        `setDefaultContext` in class `CompositeContextNode`

    - #### getContexts

          public List<Context> getContexts​(String contextType)

      Specified by:
        `getContexts` in interface `ContextContainer`
      Overrides:
        `getContexts` in class `CompositeContextNode`

    - #### getContext

          public Context getContext​(String contextType,
                                    long id)

      Specified by:
        `getContext` in interface `ContextContainer`
      Overrides:
        `getContext` in class `CompositeContextNode`

    - #### getCompletionConditionExpression

          public String getCompletionConditionExpression()

    - #### setCompletionConditionExpression

          public void setCompletionConditionExpression​(String completionConditionExpression)