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_INSTANCESFields inherited from class org.flowable.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior -
Constructor Summary
ConstructorsConstructorDescriptionParallelMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior) -
Method Summary
Modifier and TypeMethodDescriptionprotected intcreateInstances(DelegateExecution multiInstanceRootExecution) Handles the parallel case of spawning the instances.protected ExecutionEntityinactivateExecution(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) protected voidinactivateExecutionAndParentExecutions(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) protected voidinternalInterrupted(DelegateExecution execution) protected voidinternalLeave(DelegateExecution execution, boolean zeroNrOfInstances) booleanisAsyncWithoutWaitStates(ProcessEngineConfigurationImpl processEngineConfiguration) voidleave(DelegateExecution execution) Called when the wrappedActivityBehaviorcalls theAbstractBpmnActivityBehavior.leave(DelegateExecution)method.protected voidleave(ExecutionEntity execution, int nrOfInstances, int nrOfCompletedInstances, boolean isCompletionConditionSatisfied) booleanleaveAsync(ExecutionEntity execution) protected voidlockFirstParentScope(DelegateExecution execution) protected voidverifyCallActivity(ExecutionEntity executionToUse, Activity activity) protected ActivityverifyCompensation(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, usesCollectionMethods 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:
createInstancesin classMultiInstanceActivityBehavior
-
isAsyncWithoutWaitStates
-
leave
Called when the wrappedActivityBehaviorcalls theAbstractBpmnActivityBehavior.leave(DelegateExecution)method. Handles the completion of one of the parallel instances- Overrides:
leavein 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:
internalInterruptedin classMultiInstanceActivityBehavior
-