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.String
collectionElementVariable
protected Expression
collectionExpression
protected java.lang.String
collectionVariable
protected Expression
completionConditionExpression
protected static BpmnBehaviorLogger
LOG
static java.lang.String
LOOP_COUNTER
protected Expression
loopCardinalityExpression
static java.lang.String
NUMBER_OF_ACTIVE_INSTANCES
static java.lang.String
NUMBER_OF_COMPLETED_INSTANCES
static java.lang.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
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
completionConditionSatisfied(ActivityExecution execution)
protected abstract void
createInstances(ActivityExecution execution, int nrOfInstances)
void
doLeave(ActivityExecution execution)
Subclasses that call leave() will first pass through this method, before the regularFlowNodeActivityBehavior.leave(ActivityExecution)
is called.protected void
evaluateCollectionVariable(ActivityExecution execution, int loopCounter)
void
execute(ActivityExecution execution)
Default behaviour: just leave the activity with no extra functionality.java.lang.String
getCollectionElementVariable()
Expression
getCollectionExpression()
java.lang.String
getCollectionVariable()
Expression
getCompletionConditionExpression()
protected java.lang.Object
getElementAtIndex(int i, java.util.Collection<?> collection)
ActivityImpl
getInnerActivity(PvmActivity miBodyActivity)
Get the inner activity of the multi instance execution.protected java.lang.Integer
getLocalLoopVariable(ActivityExecution execution, java.lang.String variableName)
Expression
getLoopCardinalityExpression()
protected java.lang.Integer
getLoopVariable(ActivityExecution execution, java.lang.String variableName)
boolean
hasLoopVariable(ActivityExecution execution, java.lang.String variableName)
protected void
performInstance(ActivityExecution execution, PvmActivity activity, int loopCounter)
void
removeLoopVariable(ActivityExecution execution, java.lang.String variableName)
protected int
resolveLoopCardinality(ActivityExecution execution)
protected int
resolveNrOfInstances(ActivityExecution execution)
void
setCollectionElementVariable(java.lang.String collectionElementVariable)
void
setCollectionExpression(Expression collectionExpression)
void
setCollectionVariable(java.lang.String collectionVariable)
void
setCompletionConditionExpression(Expression completionConditionExpression)
void
setLoopCardinalityExpression(Expression loopCardinalityExpression)
protected void
setLoopVariable(ActivityExecution execution, java.lang.String variableName, java.lang.Object value)
protected boolean
usesCollection()
-
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: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:
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: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, 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)
-
-