Class MultiInstanceActivityBehavior
java.lang.Object
org.operaton.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
org.operaton.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior
org.operaton.bpm.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
- All Implemented Interfaces:
CoreActivityBehavior<ActivityExecution>,ActivityBehavior,CompositeActivityBehavior,ModificationObserverBehavior,SignallableActivityBehavior
- Direct Known Subclasses:
ParallelMultiInstanceActivityBehavior,SequentialMultiInstanceActivityBehavior
public abstract class MultiInstanceActivityBehavior
extends AbstractBpmnActivityBehavior
implements CompositeActivityBehavior, ModificationObserverBehavior
Abstract Multi Instance Behavior: used for both parallel and sequential
multi instance implementation.
- Author:
- Daniel Meyer, Thorben Lindhauer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected Expressionprotected Stringprotected Expressionprotected static final BpmnBehaviorLoggerstatic final Stringprotected Expressionstatic final Stringstatic final Stringstatic final StringFields inherited from class org.operaton.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancompletionConditionSatisfied(ActivityExecution execution) protected abstract voidcreateInstances(ActivityExecution execution, int nrOfInstances) voiddoLeave(ActivityExecution execution) Subclasses that call leave() will first pass through this method, before the regularFlowNodeActivityBehavior.leave(ActivityExecution)is called.protected Collection<?> evaluateCollection(ActivityExecution execution) protected voidevaluateCollectionVariable(ActivityExecution execution, Collection<?> collection, int loopCounter) voidexecute(ActivityExecution execution) Default behaviour: just leave the activity with no extra functionality.protected ObjectgetElementAtIndex(int i, Collection<?> collection) getInnerActivity(PvmActivity miBodyActivity) Get the inner activity of the multi instance execution.protected IntegergetLocalLoopVariable(ActivityExecution execution, String variableName) protected IntegergetLoopVariable(ActivityExecution execution, String variableName) booleanhasLoopVariable(ActivityExecution execution, String variableName) protected voidperformInstance(ActivityExecution execution, PvmActivity activity, int loopCounter, Collection<?> collection) voidremoveLoopVariable(ActivityExecution execution, String variableName) protected intresolveLoopCardinality(ActivityExecution execution) protected intresolveNrOfInstances(ActivityExecution execution) voidsetCollectionElementVariable(String collectionElementVariable) voidsetCollectionExpression(Expression collectionExpression) voidsetCollectionVariable(String collectionVariable) voidsetCompletionConditionExpression(Expression completionConditionExpression) voidsetLoopCardinalityExpression(Expression loopCardinalityExpression) protected voidsetLoopVariable(ActivityExecution execution, String variableName, Object value) protected booleanMethods inherited from class org.operaton.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior
createCompensateEventSubscription, executeWithErrorPropagation, isCompensationEventSubprocess, signal, signalCompensationDoneMethods inherited from class org.operaton.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
leave, leaveIgnoreConditionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.operaton.bpm.engine.impl.pvm.delegate.CompositeActivityBehavior
complete, concurrentChildExecutionEndedMethods inherited from interface org.operaton.bpm.engine.impl.pvm.delegate.ModificationObserverBehavior
createInnerInstance, destroyInnerInstance, initializeScope
-
Field Details
-
LOG
-
NUMBER_OF_INSTANCES
- See Also:
-
NUMBER_OF_ACTIVE_INSTANCES
- See Also:
-
NUMBER_OF_COMPLETED_INSTANCES
- See Also:
-
LOOP_COUNTER
- See Also:
-
loopCardinalityExpression
-
completionConditionExpression
-
collectionExpression
-
collectionVariable
-
collectionElementVariable
-
-
Constructor Details
-
MultiInstanceActivityBehavior
public MultiInstanceActivityBehavior()
-
-
Method Details
-
execute
Description copied from class:FlowNodeActivityBehaviorDefault behaviour: just leave the activity with no extra functionality.- Specified by:
executein interfaceActivityBehavior- Specified by:
executein interfaceCoreActivityBehavior<ActivityExecution>- Overrides:
executein classFlowNodeActivityBehavior- Throws:
Exception
-
performInstance
protected void performInstance(ActivityExecution execution, PvmActivity activity, int loopCounter, Collection<?> collection) -
evaluateCollectionVariable
protected void evaluateCollectionVariable(ActivityExecution execution, Collection<?> collection, int loopCounter) -
evaluateCollection
-
createInstances
protected abstract void createInstances(ActivityExecution execution, int nrOfInstances) throws Exception - Throws:
Exception
-
resolveNrOfInstances
-
getElementAtIndex
-
usesCollection
protected boolean usesCollection() -
resolveLoopCardinality
-
completionConditionSatisfied
-
doLeave
Description copied from class:AbstractBpmnActivityBehaviorSubclasses that call leave() will first pass through this method, before the regularFlowNodeActivityBehavior.leave(ActivityExecution)is called.- Overrides:
doLeavein classAbstractBpmnActivityBehavior
-
getInnerActivity
Get the inner activity of the multi instance execution.- Parameters:
execution- of multi instance activity- Returns:
- inner activity
-
setLoopVariable
-
getLoopVariable
-
getLocalLoopVariable
-
hasLoopVariable
-
removeLoopVariable
-
getLoopCardinalityExpression
-
setLoopCardinalityExpression
-
getCompletionConditionExpression
-
setCompletionConditionExpression
-
getCollectionExpression
-
setCollectionExpression
-
getCollectionVariable
-
setCollectionVariable
-
getCollectionElementVariable
-
setCollectionElementVariable
-