Package org.kie.api.fluent

## Interface NodeContainerBuilder<T extends NodeContainerBuilder<T,​P>,​P extends NodeContainerBuilder<P,​?>>

- Type Parameters:
    `T` - Concrete container node
    `P` - Parent container node
  All Superinterfaces:
    `NodeBuilder<T,​P>`
  All Known Subinterfaces:
    `CompositeNodeBuilder<T>`, `DynamicNodeBuilder<T>`, `ForEachNodeBuilder<T>`, `ProcessBuilder`

      public interface NodeContainerBuilder<T extends NodeContainerBuilder<T,​P>,​P extends NodeContainerBuilder<P,​?>>
      extends NodeBuilder<T,​P>

  Include operations to define a container node.
  As it name indicates, a container node contains nodes (a process is also a container node), so this class defines all methods to create children nodes.
  A container node also holds variables, exception handlers and establish connections between nodes.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ActionNodeBuilder<T>` | `actionNode​(long id)` |
    `BoundaryEventNodeBuilder<T>` | `boundaryEventNode​(long id)` |
    `CompositeNodeBuilder<T>` | `compositeNode​(long id)` |
    `T` | `connection​(long fromId, long toId)` |
    `DynamicNodeBuilder<T>` | `dynamicNode​(long id)` |
    `EndNodeBuilder<T>` | `endNode​(long id)` |
    `EventNodeBuilder<T>` | `eventNode​(long id)` |
    `T` | `exceptionHandler​(Class<? extends Throwable> exceptionClass, Dialect dialect, String code)` |
    `FaultNodeBuilder<T>` | `faultNode​(long id)` |
    `ForEachNodeBuilder<T>` | `forEachNode​(long id)` |
    `HumanTaskNodeBuilder<T>` | `humanTaskNode​(long id)` |
    `JoinNodeBuilder<T>` | `joinNode​(long id)` |
    `MilestoneNodeBuilder<T>` | `milestoneNode​(long id)` |
    `RuleSetNodeBuilder<T>` | `ruleSetNode​(long id)` |
    `SplitNodeBuilder<T>` | `splitNode​(long id)` |
    `StartNodeBuilder<T>` | `startNode​(long id)` |
    `SubProcessNodeBuilder<T>` | `subProcessNode​(long id)` |
    `TimerNodeBuilder<T>` | `timerNode​(long id)` |
    `<V> T` | `variable​(Variable<V> variable)` | Adds a variable to this container
    `WorkItemNodeBuilder<T>` | `workItemNode​(long id)` |

    - ### Methods inherited from interface org.kie.api.fluent.NodeBuilder

      `done, name, setMetadata`

- - ### Method Detail

    - #### startNode

          StartNodeBuilder<T> startNode​(long id)

    - #### endNode

          EndNodeBuilder<T> endNode​(long id)

    - #### actionNode

          ActionNodeBuilder<T> actionNode​(long id)

    - #### milestoneNode

          MilestoneNodeBuilder<T> milestoneNode​(long id)

    - #### timerNode

          TimerNodeBuilder<T> timerNode​(long id)

    - #### humanTaskNode

          HumanTaskNodeBuilder<T> humanTaskNode​(long id)

    - #### subProcessNode

          SubProcessNodeBuilder<T> subProcessNode​(long id)

    - #### splitNode

          SplitNodeBuilder<T> splitNode​(long id)

    - #### joinNode

          JoinNodeBuilder<T> joinNode​(long id)

    - #### ruleSetNode

          RuleSetNodeBuilder<T> ruleSetNode​(long id)

    - #### faultNode

          FaultNodeBuilder<T> faultNode​(long id)

    - #### eventNode

          EventNodeBuilder<T> eventNode​(long id)

    - #### boundaryEventNode

          BoundaryEventNodeBuilder<T> boundaryEventNode​(long id)

    - #### compositeNode

          CompositeNodeBuilder<T> compositeNode​(long id)

    - #### forEachNode

          ForEachNodeBuilder<T> forEachNode​(long id)

    - #### dynamicNode

          DynamicNodeBuilder<T> dynamicNode​(long id)

    - #### workItemNode

          WorkItemNodeBuilder<T> workItemNode​(long id)

    - #### exceptionHandler

          T exceptionHandler​(Class<? extends Throwable> exceptionClass,
                             Dialect dialect,
                             String code)

    - #### connection

          T connection​(long fromId,
                       long toId)

    - #### variable

          <V> T variable​(Variable<V> variable)

      Adds a variable to this container