Class MultiInstanceActivityBehavior
- java.lang.Object
-
- org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
-
- org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior
-
- org.camunda.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
Fields Modifier and Type Field Description protected java.lang.StringcollectionElementVariableprotected ExpressioncollectionExpressionprotected java.lang.StringcollectionVariableprotected ExpressioncompletionConditionExpressionprotected static BpmnBehaviorLoggerLOGstatic java.lang.StringLOOP_COUNTERprotected ExpressionloopCardinalityExpressionstatic java.lang.StringNUMBER_OF_ACTIVE_INSTANCESstatic java.lang.StringNUMBER_OF_COMPLETED_INSTANCESstatic java.lang.StringNUMBER_OF_INSTANCES-
Fields inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
-
-
Constructor Summary
Constructors Constructor Description MultiInstanceActivityBehavior()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected 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 voidevaluateCollectionVariable(ActivityExecution execution, int loopCounter)voidexecute(ActivityExecution execution)Default behaviour: just leave the activity with no extra functionality.java.lang.StringgetCollectionElementVariable()ExpressiongetCollectionExpression()java.lang.StringgetCollectionVariable()ExpressiongetCompletionConditionExpression()protected java.lang.ObjectgetElementAtIndex(int i, java.util.Collection<?> collection)ActivityImplgetInnerActivity(PvmActivity miBodyActivity)Get the inner activity of the multi instance execution.protected java.lang.IntegergetLocalLoopVariable(ActivityExecution execution, java.lang.String variableName)ExpressiongetLoopCardinalityExpression()protected java.lang.IntegergetLoopVariable(ActivityExecution execution, java.lang.String variableName)booleanhasLoopVariable(ActivityExecution execution, java.lang.String variableName)protected voidperformInstance(ActivityExecution execution, PvmActivity activity, int loopCounter)voidremoveLoopVariable(ActivityExecution execution, java.lang.String variableName)protected intresolveLoopCardinality(ActivityExecution execution)protected intresolveNrOfInstances(ActivityExecution execution)voidsetCollectionElementVariable(java.lang.String collectionElementVariable)voidsetCollectionExpression(Expression collectionExpression)voidsetCollectionVariable(java.lang.String collectionVariable)voidsetCompletionConditionExpression(Expression completionConditionExpression)voidsetLoopCardinalityExpression(Expression loopCardinalityExpression)protected voidsetLoopVariable(ActivityExecution execution, java.lang.String variableName, java.lang.Object value)protected booleanusesCollection()-
Methods inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior
createCompensateEventSubscription, executeWithErrorPropagation, isCompensationEventSubprocess, signal, signalCompensationDone
-
Methods inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
leave, leaveIgnoreConditions
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.camunda.bpm.engine.impl.pvm.delegate.CompositeActivityBehavior
complete, concurrentChildExecutionEnded
-
Methods inherited from interface org.camunda.bpm.engine.impl.pvm.delegate.ModificationObserverBehavior
createInnerInstance, destroyInnerInstance, initializeScope
-
-
-
-
Field Detail
-
LOG
protected static final BpmnBehaviorLogger LOG
-
NUMBER_OF_INSTANCES
public static final java.lang.String NUMBER_OF_INSTANCES
- See Also:
- Constant Field Values
-
NUMBER_OF_ACTIVE_INSTANCES
public static final java.lang.String NUMBER_OF_ACTIVE_INSTANCES
- See Also:
- Constant Field Values
-
NUMBER_OF_COMPLETED_INSTANCES
public static final java.lang.String NUMBER_OF_COMPLETED_INSTANCES
- See Also:
- Constant Field Values
-
LOOP_COUNTER
public static final java.lang.String LOOP_COUNTER
- See Also:
- Constant Field Values
-
loopCardinalityExpression
protected Expression loopCardinalityExpression
-
completionConditionExpression
protected Expression completionConditionExpression
-
collectionExpression
protected Expression collectionExpression
-
collectionVariable
protected java.lang.String collectionVariable
-
collectionElementVariable
protected java.lang.String collectionElementVariable
-
-
Method Detail
-
execute
public void execute(ActivityExecution execution) throws java.lang.Exception
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:
java.lang.Exception
-
performInstance
protected void performInstance(ActivityExecution execution, PvmActivity activity, int loopCounter)
-
evaluateCollectionVariable
protected void evaluateCollectionVariable(ActivityExecution execution, int loopCounter)
-
createInstances
protected abstract void createInstances(ActivityExecution execution, int nrOfInstances) throws java.lang.Exception
- Throws:
java.lang.Exception
-
resolveNrOfInstances
protected int resolveNrOfInstances(ActivityExecution execution)
-
getElementAtIndex
protected java.lang.Object getElementAtIndex(int i, java.util.Collection<?> collection)
-
usesCollection
protected boolean usesCollection()
-
resolveLoopCardinality
protected int resolveLoopCardinality(ActivityExecution execution)
-
completionConditionSatisfied
protected boolean completionConditionSatisfied(ActivityExecution execution)
-
doLeave
public void doLeave(ActivityExecution execution)
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
public ActivityImpl getInnerActivity(PvmActivity miBodyActivity)
Get the inner activity of the multi instance execution.- Parameters:
execution- of multi instance activity- Returns:
- inner activity
-
setLoopVariable
protected void setLoopVariable(ActivityExecution execution, java.lang.String variableName, java.lang.Object value)
-
getLoopVariable
protected java.lang.Integer getLoopVariable(ActivityExecution execution, java.lang.String variableName)
-
getLocalLoopVariable
protected java.lang.Integer getLocalLoopVariable(ActivityExecution execution, java.lang.String variableName)
-
hasLoopVariable
public boolean hasLoopVariable(ActivityExecution execution, java.lang.String variableName)
-
removeLoopVariable
public void removeLoopVariable(ActivityExecution execution, java.lang.String variableName)
-
getLoopCardinalityExpression
public Expression getLoopCardinalityExpression()
-
setLoopCardinalityExpression
public void setLoopCardinalityExpression(Expression loopCardinalityExpression)
-
getCompletionConditionExpression
public Expression getCompletionConditionExpression()
-
setCompletionConditionExpression
public void setCompletionConditionExpression(Expression completionConditionExpression)
-
getCollectionExpression
public Expression getCollectionExpression()
-
setCollectionExpression
public void setCollectionExpression(Expression collectionExpression)
-
getCollectionVariable
public java.lang.String getCollectionVariable()
-
setCollectionVariable
public void setCollectionVariable(java.lang.String collectionVariable)
-
getCollectionElementVariable
public java.lang.String getCollectionElementVariable()
-
setCollectionElementVariable
public void setCollectionElementVariable(java.lang.String collectionElementVariable)
-
-