Package org.jbpm.workflow.core.node

## Class CompositeNode

- 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

- All Implemented Interfaces:
    `Serializable`, `Contextable`, `ContextResolver`, `Node`, `EventNodeInterface`, `NodeContainer`, `org.kie.api.definition.process.Node`, `org.kie.api.definition.process.NodeContainer`
  Direct Known Subclasses:
    `CompositeContextNode`

      public class CompositeNode
      extends StateBasedNode
      implements NodeContainer, EventNodeInterface

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `CompositeNode.CompositeNodeEnd` |
    `static class` | `CompositeNode.CompositeNodeStart` |
    `static class` | `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
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `CompositeNode()` |
    `protected` | `CompositeNode​(org.kie.api.definition.process.NodeType type)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `acceptsEvent​(String type, Object event)` |
    `boolean` | `acceptsEvent​(String type, Object event, Function<String,​Object> resolver)` |
    `void` | `addIncomingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `addNode​(org.kie.api.definition.process.Node node)` | Method for adding a node to this node container.
    `void` | `addOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `CompositeNode.NodeAndType` | `getLinkedIncomingNode​(String inType)` |
    `Map<String,​CompositeNode.NodeAndType>` | `getLinkedIncomingNodes()` |
    `CompositeNode.NodeAndType` | `getLinkedOutgoingNode​(String outType)` |
    `Map<String,​CompositeNode.NodeAndType>` | `getLinkedOutgoingNodes()` |
    `org.kie.api.definition.process.Node` | `getNode​(long id)` |
    `org.kie.api.definition.process.Node` | `getNodeByUniqueId​(String id)` |
    `org.kie.api.definition.process.Node[]` | `getNodes()` |
    `protected void` | `internalAddNode​(org.kie.api.definition.process.Node node)` |
    `CompositeNode.NodeAndType` | `internalGetLinkedIncomingNode​(String inType)` |
    `CompositeNode.NodeAndType` | `internalGetLinkedOutgoingNode​(String outType)` |
    `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` | `isAutoComplete()` |
    `boolean` | `isCancelRemainingInstances()` |
    `void` | `linkIncomingConnections​(String inType, long inNodeId, String inNodeType)` |
    `void` | `linkIncomingConnections​(String inType, CompositeNode.NodeAndType inNode)` |
    `void` | `linkOutgoingConnections​(long outNodeId, String outNodeType, String outType)` |
    `void` | `linkOutgoingConnections​(CompositeNode.NodeAndType outNode, String outType)` |
    `void` | `removeIncomingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `removeNode​(org.kie.api.definition.process.Node node)` | Method for removing a node from this node container
    `void` | `removeOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `setAutoComplete​(boolean autoComplete)` |
    `void` | `setCancelRemainingInstances​(boolean cancelRemainingInstances)` |
    `void` | `validateAddIncomingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `validateAddOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `validateRemoveIncomingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `validateRemoveOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |

    - ### 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, getContext, getDefaultIncomingConnections, getDefaultOutgoingConnections, getFrom, getId, getIncomingConnections, getIncomingConnections, getMetaData, getMetaData, getName, getNodeContainer, getNodeType, getNodeUniqueId, getOutgoingConnections, getOutgoingConnections, getTo, getUniqueId, internalGetConstraint, resolveContext, 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`

    - ### Methods inherited from interface org.jbpm.workflow.core.NodeContainer

      `resolveContext`

- - ### Constructor Detail

    - #### CompositeNode

          public CompositeNode()

    - #### CompositeNode

          protected CompositeNode​(org.kie.api.definition.process.NodeType type)

  - ### Method Detail

    - #### getNode

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

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

    - #### getNodeByUniqueId

          public org.kie.api.definition.process.Node getNodeByUniqueId​(String id)

      Specified by:
        `getNodeByUniqueId` in interface `org.kie.api.definition.process.NodeContainer`

    - #### internalGetNode

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

      Specified by:
        `internalGetNode` in interface `NodeContainer`

    - #### getNodes

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

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

    - #### internalGetNodes

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

    - #### 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`
      Parameters:
        `node` - the node to be added

    - #### internalAddNode

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

    - #### 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`
      Parameters:
        `node` - the node to be removed

    - #### internalRemoveNode

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

    - #### acceptsEvent

          public boolean acceptsEvent​(String type,
                                      Object event,
                                      Function<String,​Object> resolver)

      Specified by:
        `acceptsEvent` in interface `EventNodeInterface`

    - #### acceptsEvent

          public boolean acceptsEvent​(String type,
                                      Object event)

      Specified by:
        `acceptsEvent` in interface `EventNodeInterface`

    - #### linkIncomingConnections

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

    - #### linkIncomingConnections

          public void linkIncomingConnections​(String inType,
                                              CompositeNode.NodeAndType inNode)

    - #### linkOutgoingConnections

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

    - #### linkOutgoingConnections

          public void linkOutgoingConnections​(CompositeNode.NodeAndType outNode,
                                              String outType)

    - #### getLinkedIncomingNode

          public CompositeNode.NodeAndType getLinkedIncomingNode​(String inType)

    - #### internalGetLinkedIncomingNode

          public CompositeNode.NodeAndType internalGetLinkedIncomingNode​(String inType)

    - #### getLinkedOutgoingNode

          public CompositeNode.NodeAndType getLinkedOutgoingNode​(String outType)

    - #### internalGetLinkedOutgoingNode

          public CompositeNode.NodeAndType internalGetLinkedOutgoingNode​(String outType)

    - #### getLinkedIncomingNodes

          public Map<String,​CompositeNode.NodeAndType> getLinkedIncomingNodes()

    - #### getLinkedOutgoingNodes

          public Map<String,​CompositeNode.NodeAndType> getLinkedOutgoingNodes()

    - #### validateAddIncomingConnection

          public void validateAddIncomingConnection​(String type,
                                                    org.kie.api.definition.process.Connection connection)

      Overrides:
        `validateAddIncomingConnection` in class `NodeImpl`

    - #### addIncomingConnection

          public void addIncomingConnection​(String type,
                                            org.kie.api.definition.process.Connection connection)

      Specified by:
        `addIncomingConnection` in interface `Node`
      Overrides:
        `addIncomingConnection` in class `NodeImpl`

    - #### validateAddOutgoingConnection

          public void validateAddOutgoingConnection​(String type,
                                                    org.kie.api.definition.process.Connection connection)

      Overrides:
        `validateAddOutgoingConnection` in class `NodeImpl`

    - #### addOutgoingConnection

          public void addOutgoingConnection​(String type,
                                            org.kie.api.definition.process.Connection connection)

      Specified by:
        `addOutgoingConnection` in interface `Node`
      Overrides:
        `addOutgoingConnection` in class `NodeImpl`

    - #### validateRemoveIncomingConnection

          public void validateRemoveIncomingConnection​(String type,
                                                       org.kie.api.definition.process.Connection connection)

      Overrides:
        `validateRemoveIncomingConnection` in class `NodeImpl`

    - #### removeIncomingConnection

          public void removeIncomingConnection​(String type,
                                               org.kie.api.definition.process.Connection connection)

      Specified by:
        `removeIncomingConnection` in interface `Node`
      Overrides:
        `removeIncomingConnection` in class `NodeImpl`

    - #### validateRemoveOutgoingConnection

          public void validateRemoveOutgoingConnection​(String type,
                                                       org.kie.api.definition.process.Connection connection)

      Overrides:
        `validateRemoveOutgoingConnection` in class `NodeImpl`

    - #### removeOutgoingConnection

          public void removeOutgoingConnection​(String type,
                                               org.kie.api.definition.process.Connection connection)

      Specified by:
        `removeOutgoingConnection` in interface `Node`
      Overrides:
        `removeOutgoingConnection` in class `NodeImpl`

    - #### isCancelRemainingInstances

          public boolean isCancelRemainingInstances()

    - #### setCancelRemainingInstances

          public void setCancelRemainingInstances​(boolean cancelRemainingInstances)

    - #### isAutoComplete

          public boolean isAutoComplete()

    - #### setAutoComplete

          public void setAutoComplete​(boolean autoComplete)