Interface BpmnElementContainerProcessor<T extends ExecutableFlowElement>

Type Parameters:
T - the type that represents the BPMN element
All Superinterfaces:
BpmnElementProcessor<T>
All Known Implementing Classes:
CallActivityProcessor, EventSubProcessProcessor, MultiInstanceBodyProcessor, ProcessProcessor, SubProcessProcessor

public interface BpmnElementContainerProcessor<T extends ExecutableFlowElement> extends BpmnElementProcessor<T>
The business logic of an BPMN element container (e.g. a sub-process).

The execution of an element is divided into multiple steps that represents the lifecycle of the element. Each step defines a set of actions that can be performed in this step. The transition to the next step must be triggered explicitly in the current step.

  • Method Details

    • onChildActivating

      default Either<Failure,?> onChildActivating(T element, BpmnElementContext flowScopeContext, BpmnElementContext childContext)
      A child element is on activating (but not yet activated). Perform additional logic for the new child element, like setting variables.
      Parameters:
      element - the instance of the BPMN element container
      flowScopeContext - process instance-related data of the element container
      childContext - process instance-related data of the child element that is on activating
      Returns:
      either a failure (Left) or any success value (Right)
    • onChildCompleting

      default Either<Failure,?> onChildCompleting(T element, BpmnElementContext flowScopeContext, BpmnElementContext childContext)
      A child element is completing (but not yet completed). Perform additional logic for the new child element, like setting variables.
      Parameters:
      element - the instance of the BPMN element container
      flowScopeContext - process instance-related data of the element container
      childContext - process instance-related data of the child element that is completing
      Returns:
      either a failure (Left) or any success value (Right)
    • beforeExecutionPathCompleted

      default Either<Failure,?> beforeExecutionPathCompleted(T element, BpmnElementContext flowScopeContext, BpmnElementContext childContext)
      The execution path of a child element is about to be completed.
      Parameters:
      element - the instance of the BPMN element container
      flowScopeContext - process instance-related data of the element container
      childContext - process instance-related data of the child element that is completed. At
      Returns:
      either a failure (Left) or any success value (Right)
    • afterExecutionPathCompleted

      void afterExecutionPathCompleted(T element, BpmnElementContext flowScopeContext, BpmnElementContext childContext, Boolean satisfiesCompletionCondition)
      The execution path of a child element has completed.
      Parameters:
      element - the instance of the BPMN element container
      flowScopeContext - process instance-related data of the element container
      childContext - process instance-related data of the child element that is completed. At this point in time the element has already been removed from the state.
      satisfiesCompletionCondition - the evaluation result of completion condition
    • onChildTerminated

      void onChildTerminated(T element, BpmnElementContext flowScopeContext, BpmnElementContext childContext)
      A child element is terminated. Terminate the element container if it has no more active child elements. Or, continue with the interrupting event sub-process that was triggered and caused the termination.
      Parameters:
      element - the instance of the BPMN element container
      flowScopeContext - process instance-related data of the element container
      childContext - process instance-related data of the child element that is terminated