Class MultiInstanceBodyProcessor
java.lang.Object
io.camunda.zeebe.engine.processing.bpmn.container.MultiInstanceBodyProcessor
- All Implemented Interfaces:
BpmnElementContainerProcessor<ExecutableMultiInstanceBody>
,BpmnElementProcessor<ExecutableMultiInstanceBody>
public final class MultiInstanceBodyProcessor
extends Object
implements BpmnElementContainerProcessor<ExecutableMultiInstanceBody>
-
Field Summary
Fields inherited from interface io.camunda.zeebe.engine.processing.bpmn.BpmnElementProcessor
SUCCESS
-
Constructor Summary
ConstructorsConstructorDescriptionMultiInstanceBodyProcessor
(BpmnBehaviors bpmnBehaviors, BpmnStateTransitionBehavior stateTransitionBehavior) -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterExecutionPathCompleted
(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext, Boolean satisfiesCompletionCondition) The execution path of a child element has completed.beforeExecutionPathCompleted
(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext) The execution path of a child element is about to be completed.getType()
onActivate
(ExecutableMultiInstanceBody element, BpmnElementContext context) The element is about to be entered.onChildActivating
(ExecutableMultiInstanceBody multiInstanceBody, BpmnElementContext flowScopeContext, BpmnElementContext childContext) A child element is on activating (but not yet activated).void
onChildTerminated
(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext) A child element is terminated.onComplete
(ExecutableMultiInstanceBody element, BpmnElementContext context) The element is going to be left.void
onTerminate
(ExecutableMultiInstanceBody element, BpmnElementContext context) The element is going to be terminated.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.camunda.zeebe.engine.processing.bpmn.BpmnElementContainerProcessor
onChildCompleting
Methods inherited from interface io.camunda.zeebe.engine.processing.bpmn.BpmnElementProcessor
finalizeActivation, finalizeCompletion
-
Constructor Details
-
MultiInstanceBodyProcessor
public MultiInstanceBodyProcessor(BpmnBehaviors bpmnBehaviors, BpmnStateTransitionBehavior stateTransitionBehavior)
-
-
Method Details
-
getType
- Specified by:
getType
in interfaceBpmnElementProcessor<ExecutableMultiInstanceBody>
- Returns:
- the class that represents the BPMN element
-
onActivate
public Either<Failure,?> onActivate(ExecutableMultiInstanceBody element, BpmnElementContext context) Description copied from interface:BpmnElementProcessor
The element is about to be entered. Perform every action to initialize and activate the element.This method returns an Eitherinvalid input: '<'Failure, ?> type, indicating the outcome of the activation attempt. A right value indicates success, while a left value (Failure) indicates that an error occurred during activation.
If the element is a wait-state (i.e. it is waiting for an event or an external trigger) then it is waiting after this step to continue. Otherwise, it continues directly to the next step.
Possible actions:
- apply input mappings
- open event subscriptions
- initialize child elements - if the element is a container (e.g. a sub-process)
- activating - the element is initialized
- activated - if no incidents raised
- complete - if no incidents raised invalid input: '&' not a wait-state.
- Specified by:
onActivate
in interfaceBpmnElementProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element that is executedcontext
- process instance-related data of the element that is executed- Returns:
- Eitherinvalid input: '<'Failure, ?> indicating the outcome of the activation attempt
-
onComplete
public Either<Failure,?> onComplete(ExecutableMultiInstanceBody element, BpmnElementContext context) Description copied from interface:BpmnElementProcessor
The element is going to be left. Perform every action to leave the element and continue with the next element.This method returns an Eitherinvalid input: '<'Failure, ?> type, indicating the outcome of the completion attempt. A right value indicates success, while a left value (Failure) indicates that an error occurred during the element's completion.
Possible actions:
- apply output mappings
- close event subscriptions
- take outgoing sequence flows - if any
- continue with parent element - if no outgoing sequence flows
- clean up the state
- Specified by:
onComplete
in interfaceBpmnElementProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element that is executedcontext
- process instance-related data of the element that is executed- Returns:
- Eitherinvalid input: '<'Failure, ?> indicating the outcome of the completion attempt
-
onTerminate
Description copied from interface:BpmnElementProcessor
The element is going to be terminated. Perform every action to terminate the element and continue with the element that caused the termination (e.g. the triggered boundary event).Possible actions:
- close event subscriptions
- resolve incidents
- activate the triggered boundary event - if any
- activate the triggered event sub-process - if any
- continue with parent element
- clean up the state
- Specified by:
onTerminate
in interfaceBpmnElementProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element that is executedcontext
- process instance-related data of the element that is executed
-
onChildActivating
public Either<Failure,?> onChildActivating(ExecutableMultiInstanceBody multiInstanceBody, BpmnElementContext flowScopeContext, BpmnElementContext childContext) Description copied from interface:BpmnElementContainerProcessor
A child element is on activating (but not yet activated). Perform additional logic for the new child element, like setting variables.- Specified by:
onChildActivating
in interfaceBpmnElementContainerProcessor<ExecutableMultiInstanceBody>
- Parameters:
multiInstanceBody
- the instance of the BPMN element containerflowScopeContext
- process instance-related data of the element containerchildContext
- process instance-related data of the child element that is on activating- Returns:
- either a failure (Left) or any success value (Right)
-
beforeExecutionPathCompleted
public Either<Failure,?> beforeExecutionPathCompleted(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext) Description copied from interface:BpmnElementContainerProcessor
The execution path of a child element is about to be completed.- Specified by:
beforeExecutionPathCompleted
in interfaceBpmnElementContainerProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element containerflowScopeContext
- process instance-related data of the element containerchildContext
- process instance-related data of the child element that is completed. At- Returns:
- either a failure (Left) or any success value (Right)
-
afterExecutionPathCompleted
public void afterExecutionPathCompleted(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext, Boolean satisfiesCompletionCondition) Description copied from interface:BpmnElementContainerProcessor
The execution path of a child element has completed.- Specified by:
afterExecutionPathCompleted
in interfaceBpmnElementContainerProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element containerflowScopeContext
- process instance-related data of the element containerchildContext
- 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
public void onChildTerminated(ExecutableMultiInstanceBody element, BpmnElementContext flowScopeContext, BpmnElementContext childContext) Description copied from interface:BpmnElementContainerProcessor
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.- Specified by:
onChildTerminated
in interfaceBpmnElementContainerProcessor<ExecutableMultiInstanceBody>
- Parameters:
element
- the instance of the BPMN element containerflowScopeContext
- process instance-related data of the element containerchildContext
- process instance-related data of the child element that is terminated
-