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 String
collectionElementVariable
protected Expression
collectionExpression
protected String
collectionVariable
protected Expression
completionConditionExpression
protected static BpmnBehaviorLogger
LOG
static String
LOOP_COUNTER
protected Expression
loopCardinalityExpression
static String
NUMBER_OF_ACTIVE_INSTANCES
static String
NUMBER_OF_COMPLETED_INSTANCES
static String
NUMBER_OF_INSTANCES
-
Fields inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
-
-
Constructor Summary
Constructors Constructor Description MultiInstanceActivityBehavior()
-
Method Summary
-
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 String NUMBER_OF_INSTANCES
- See Also:
- Constant Field Values
-
NUMBER_OF_ACTIVE_INSTANCES
public static final String NUMBER_OF_ACTIVE_INSTANCES
- See Also:
- Constant Field Values
-
NUMBER_OF_COMPLETED_INSTANCES
public static final String NUMBER_OF_COMPLETED_INSTANCES
- See Also:
- Constant Field Values
-
LOOP_COUNTER
public static final String LOOP_COUNTER
- See Also:
- Constant Field Values
-
loopCardinalityExpression
protected Expression loopCardinalityExpression
-
completionConditionExpression
protected Expression completionConditionExpression
-
collectionExpression
protected Expression collectionExpression
-
collectionVariable
protected String collectionVariable
-
collectionElementVariable
protected String collectionElementVariable
-
-
Method Detail
-
execute
public void execute(ActivityExecution execution) throws Exception
Description copied from class:FlowNodeActivityBehavior
Default behaviour: just leave the activity with no extra functionality.- Specified by:
execute
in interfaceActivityBehavior
- Specified by:
execute
in interfaceCoreActivityBehavior<ActivityExecution>
- Overrides:
execute
in classFlowNodeActivityBehavior
- Throws:
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 Exception
- Throws:
Exception
-
resolveNrOfInstances
protected int resolveNrOfInstances(ActivityExecution execution)
-
getElementAtIndex
protected Object getElementAtIndex(int i, 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:AbstractBpmnActivityBehavior
Subclasses that call leave() will first pass through this method, before the regularFlowNodeActivityBehavior.leave(ActivityExecution)
is called.- Overrides:
doLeave
in 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, String variableName, Object value)
-
getLoopVariable
protected Integer getLoopVariable(ActivityExecution execution, String variableName)
-
getLocalLoopVariable
protected Integer getLocalLoopVariable(ActivityExecution execution, String variableName)
-
hasLoopVariable
public boolean hasLoopVariable(ActivityExecution execution, String variableName)
-
removeLoopVariable
public void removeLoopVariable(ActivityExecution execution, 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 String getCollectionVariable()
-
setCollectionVariable
public void setCollectionVariable(String collectionVariable)
-
getCollectionElementVariable
public String getCollectionElementVariable()
-
setCollectionElementVariable
public void setCollectionElementVariable(String collectionElementVariable)
-
-