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
public class ParallelMultiInstanceBehavior extends MultiInstanceActivityBehavior
- Author:
- Joram Barrez, Tijs Rademakers, Filip Hrisafov
- See Also:
- Serialized Form
-
-
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
Constructors Constructor Description ParallelMultiInstanceBehavior(org.flowable.bpmn.model.Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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, org.flowable.bpmn.model.Activity activity)protected org.flowable.bpmn.model.ActivityverifyCompensation(DelegateExecution execution, ExecutionEntity executionToUse, org.flowable.bpmn.model.Activity activity)-
Methods inherited from class org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
aggregateVariablesForChildExecution, aggregateVariablesOfAllInstances, buildCompletedEvent, 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 Detail
-
ParallelMultiInstanceBehavior
public ParallelMultiInstanceBehavior(org.flowable.bpmn.model.Activity activity, AbstractBpmnActivityBehavior originalActivityBehavior)
-
-
Method Detail
-
createInstances
protected int createInstances(DelegateExecution multiInstanceRootExecution)
Handles the parallel case of spawning the instances. Will create child executions accordingly for every instance needed.- Specified by:
createInstancesin classMultiInstanceActivityBehavior
-
isAsyncWithoutWaitStates
public boolean isAsyncWithoutWaitStates(ProcessEngineConfigurationImpl processEngineConfiguration)
-
leave
public void leave(DelegateExecution execution)
Called when the wrappedActivityBehaviorcalls theAbstractBpmnActivityBehavior.leave(DelegateExecution)method. Handles the completion of one of the parallel instances- Overrides:
leavein classMultiInstanceActivityBehavior
-
internalLeave
protected void internalLeave(DelegateExecution execution, boolean zeroNrOfInstances)
-
inactivateExecutionAndParentExecutions
protected void inactivateExecutionAndParentExecutions(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration)
-
inactivateExecution
protected ExecutionEntity inactivateExecution(DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration)
-
leaveAsync
public boolean leaveAsync(ExecutionEntity execution)
-
leave
protected void leave(ExecutionEntity execution, int nrOfInstances, int nrOfCompletedInstances, boolean isCompletionConditionSatisfied)
-
verifyCompensation
protected org.flowable.bpmn.model.Activity verifyCompensation(DelegateExecution execution, ExecutionEntity executionToUse, org.flowable.bpmn.model.Activity activity)
-
verifyCallActivity
protected void verifyCallActivity(ExecutionEntity executionToUse, org.flowable.bpmn.model.Activity activity)
-
lockFirstParentScope
protected void lockFirstParentScope(DelegateExecution execution)
-
internalInterrupted
protected void internalInterrupted(DelegateExecution execution)
- Overrides:
internalInterruptedin classMultiInstanceActivityBehavior
-
-