Class ParallelMultiInstanceBehavior
java.lang.Object
org.flowable.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior
- All Implemented Interfaces:
Serializable
,ActivityBehavior
,InterruptibleActivityBehaviour
,SubProcessActivityBehavior
,TriggerableActivityBehavior
- Author:
- Joram Barrez, Tijs Rademakers, Filip Hrisafov
- See Also:
-
Field Summary
Fields inherited from class org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
activity, aggregations, collectionElementIndexVariable, collectionElementVariable, collectionExpression, collectionHandler, collectionString, collectionVariable, completionCondition, DELETE_REASON_END, innerActivityBehavior, LOGGER, loopCardinalityExpression, NUMBER_OF_ACTIVE_INSTANCES, NUMBER_OF_COMPLETED_INSTANCES, NUMBER_OF_INSTANCES
Fields inherited from class org.flowable.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
-
Constructor Summary
ConstructorsConstructorDescriptionParallelMultiInstanceBehavior
(Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior) -
Method Summary
Modifier and TypeMethodDescriptionprotected int
createInstances
(DelegateExecution multiInstanceRootExecution) Handles the parallel case of spawning the instances.protected ExecutionEntity
inactivateExecution
(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) protected void
inactivateExecutionAndParentExecutions
(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) protected void
internalInterrupted
(DelegateExecution execution) protected void
internalLeave
(DelegateExecution execution, boolean zeroNrOfInstances) boolean
isAsyncWithoutWaitStates
(ProcessEngineConfigurationImpl processEngineConfiguration) void
leave
(DelegateExecution execution) Called when the wrappedActivityBehavior
calls theAbstractBpmnActivityBehavior.leave(DelegateExecution)
method.protected void
leave
(ExecutionEntity execution, int nrOfInstances, int nrOfCompletedInstances, boolean isCompletionConditionSatisfied) boolean
leaveAsync
(ExecutionEntity execution) protected void
lockFirstParentScope
(DelegateExecution execution) protected void
verifyCallActivity
(ExecutionEntity executionToUse, Activity activity) protected Activity
verifyCompensation
(DelegateExecution execution, ExecutionEntity executionToUse, Activity activity) Methods inherited from class org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
aggregateVariablesForChildExecution, aggregateVariablesOfAllInstances, buildCompletedEvent, buildUnresolvedCollectionExceptionMessage, callActivityEndListeners, cleanupMiRoot, completed, completing, completionConditionSatisfied, createFlowableCollectionHandler, execute, executeCompensationBoundaryEvents, executeOriginalBehavior, findBoundaryEventsForFlowNode, getActiveValue, getAggregations, getCollectionElementIndexVariable, getCollectionElementVariable, getCollectionExpression, getCollectionString, getCollectionVariable, getCompletionCondition, getHandler, getInnerActivityBehavior, getInstanceExecution, getLocalLoopVariable, getLoopCardinalityExpression, getLoopVariable, getLoopVariableInstance, getMultiInstanceRootExecution, getProcessDefinition, hasVariableAggregationDefinitions, interrupted, isExtraScopeNeeded, iterableToCollection, lastExecutionEnded, logLoopDetails, resolveAndValidateCollection, resolveCollection, resolveLoopCardinality, resolveNrOfInstances, sendCompletedEvent, sendCompletedWithConditionEvent, setAggregations, setCollectionElementIndexVariable, setCollectionElementVariable, setCollectionExpression, setCollectionString, setCollectionVariable, setCompletionCondition, setHandler, setInnerActivityBehavior, setLoopCardinalityExpression, setLoopVariable, trigger, usesCollection
Methods inherited from class org.flowable.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
leaveIgnoreConditions, parseActivityType
-
Constructor Details
-
ParallelMultiInstanceBehavior
public ParallelMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior)
-
-
Method Details
-
createInstances
Handles the parallel case of spawning the instances. Will create child executions accordingly for every instance needed.- Specified by:
createInstances
in classMultiInstanceActivityBehavior
-
isAsyncWithoutWaitStates
-
leave
Called when the wrappedActivityBehavior
calls theAbstractBpmnActivityBehavior.leave(DelegateExecution)
method. Handles the completion of one of the parallel instances- Overrides:
leave
in classMultiInstanceActivityBehavior
-
internalLeave
-
inactivateExecutionAndParentExecutions
protected void inactivateExecutionAndParentExecutions(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) -
inactivateExecution
protected ExecutionEntity inactivateExecution(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) -
leaveAsync
-
leave
protected void leave(ExecutionEntity execution, int nrOfInstances, int nrOfCompletedInstances, boolean isCompletionConditionSatisfied) -
verifyCompensation
protected Activity verifyCompensation(DelegateExecution execution, ExecutionEntity executionToUse, Activity activity) -
verifyCallActivity
-
lockFirstParentScope
-
internalInterrupted
- Overrides:
internalInterrupted
in classMultiInstanceActivityBehavior
-