Package org.jbpm.workflow.core.node

## Class Split

- java.lang.Object
- - org.jbpm.workflow.core.impl.NodeImpl
  - - org.jbpm.workflow.core.node.Split

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

      public class Split
      extends NodeImpl
      implements Constrainable

  Default implementation of a split node.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `TYPE_AND` | All outgoing connections of a split of this type are triggered when its incoming connection has been triggered.
    `static int` | `TYPE_OR` | One or multiple outgoing connections of a split of this type are triggered when its incoming connection has been triggered.
    `static int` | `TYPE_UNDEFINED` |
    `static int` | `TYPE_XAND` |
    `static int` | `TYPE_XOR` | Exactly one outgoing connection of a split of this type is triggered when its incoming connection has been triggered.

    - ### 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
    --- | ---
    `Split()` |
    `Split​(int type)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConstraint​(ConnectionRef connectionRef, Constraint constraint)` | Adds the given constraint.
    `Constraint` | `getConstraint​(org.kie.api.definition.process.Connection connection)` |
    `Map<ConnectionRef,​Constraint>` | `getConstraints()` |
    `int` | `getType()` |
    `Constraint` | `internalGetConstraint​(ConnectionRef ref)` |
    `void` | `internalRemoveConstraint​(ConnectionRef ref)` |
    `boolean` | `isDefault​(org.kie.api.definition.process.Connection connection)` |
    `void` | `removeConstraint​(org.kie.api.definition.process.Connection connection)` |
    `void` | `removeOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `setConstraint​(org.kie.api.definition.process.Connection connection, Constraint constraint)` |
    `void` | `setType​(int type)` |
    `void` | `validateAddIncomingConnection​(String type, org.kie.api.definition.process.Connection connection)` |
    `void` | `validateAddOutgoingConnection​(String type, org.kie.api.definition.process.Connection connection)` |

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

      `addIncomingConnection, addOutgoingConnection, clearIncomingConnection, clearOutgoingConnection, getContext, getDefaultIncomingConnections, getDefaultOutgoingConnections, getFrom, getId, getIncomingConnections, getIncomingConnections, getMetaData, getMetaData, getName, getNodeContainer, getNodeType, getNodeUniqueId, getOutgoingConnections, getOutgoingConnections, getTo, getUniqueId, removeIncomingConnection, resolveContext, setContext, setId, setMetaData, setMetaData, setName, setNodeContainer, setNodeType, validateRemoveIncomingConnection, validateRemoveOutgoingConnection`

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

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

- - ### Field Detail

    - #### TYPE_UNDEFINED

          public static final int TYPE_UNDEFINED

      See Also:
        Constant Field Values

    - #### TYPE_AND

          public static final int TYPE_AND

      All outgoing connections of a split of this type are triggered when its incoming connection has been triggered. A split of this type should have no constraints linked to any of its outgoing connections.
      See Also:
        Constant Field Values

    - #### TYPE_XOR

          public static final int TYPE_XOR

      Exactly one outgoing connection of a split of this type is triggered when its incoming connection has been triggered. Which connection is based on the constraints associated with each of the connections: the connection with the highest priority whose constraint is satisfied is triggered.
      See Also:
        Constant Field Values

    - #### TYPE_OR

          public static final int TYPE_OR

      One or multiple outgoing connections of a split of this type are triggered when its incoming connection has been triggered. Which connections is based on the constraints associated with each of the connections: all connections whose constraint is satisfied are triggered.
      See Also:
        Constant Field Values

    - #### TYPE_XAND

          public static final int TYPE_XAND

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Split

          public Split()

    - #### Split

          public Split​(int type)

  - ### Method Detail

    - #### setType

          public void setType​(int type)

    - #### getType

          public int getType()

    - #### isDefault

          public boolean isDefault​(org.kie.api.definition.process.Connection connection)

    - #### getConstraint

          public Constraint getConstraint​(org.kie.api.definition.process.Connection connection)

      Overrides:
        `getConstraint` in class `NodeImpl`

    - #### internalGetConstraint

          public Constraint internalGetConstraint​(ConnectionRef ref)

      Overrides:
        `internalGetConstraint` in class `NodeImpl`

    - #### setConstraint

          public void setConstraint​(org.kie.api.definition.process.Connection connection,
                                    Constraint constraint)

      Overrides:
        `setConstraint` in class `NodeImpl`

    - #### addConstraint

          public void addConstraint​(ConnectionRef connectionRef,
                                    Constraint constraint)

      Description copied from interface: `Constrainable`
      Adds the given constraint. In cases where the constraint is associated with a specific connection, this connection will be identified using a ConnectionRef. In other cases the ConnectionRef will be null and can be ignored.
      Specified by:
        `addConstraint` in interface `Constrainable`
      Overrides:
        `addConstraint` in class `NodeImpl`

    - #### getConstraints

          public Map<ConnectionRef,​Constraint> getConstraints()

      Overrides:
        `getConstraints` in class `NodeImpl`

    - #### validateAddIncomingConnection

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

      Overrides:
        `validateAddIncomingConnection` in class `NodeImpl`

    - #### validateAddOutgoingConnection

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

      Overrides:
        `validateAddOutgoingConnection` 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`

    - #### removeConstraint

          public void removeConstraint​(org.kie.api.definition.process.Connection connection)

    - #### internalRemoveConstraint

          public void internalRemoveConstraint​(ConnectionRef ref)