org.activiti.engine.impl.bpmn.behavior
Class MultiInstanceActivityBehavior
java.lang.Object
org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
- All Implemented Interfaces:
- org.activiti.engine.impl.pvm.delegate.ActivityBehavior, org.activiti.engine.impl.pvm.delegate.CompositeActivityBehavior, org.activiti.engine.impl.pvm.delegate.SignallableActivityBehavior, org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
public abstract class MultiInstanceActivityBehavior
- extends org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
- implements org.activiti.engine.impl.pvm.delegate.CompositeActivityBehavior, org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
Implementation of the multi-instance functionality as described in the BPMN 2.0 spec.
Multi instance functionality is implemented as an ActivityBehavior
that
wraps the original ActivityBehavior
of the activity.
Only subclasses of AbstractBpmnActivityBehavior
can have multi-instance
behavior. As such, special logic is contained in the AbstractBpmnActivityBehavior
to delegate to the MultiInstanceActivityBehavior
if needed.
- Author:
- Joram Barrez, Falko Menge
Fields inherited from class org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior |
bpmnActivityBehavior |
Constructor Summary |
MultiInstanceActivityBehavior(org.activiti.engine.impl.pvm.process.ActivityImpl activity,
org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior)
|
Method Summary |
protected void |
callActivityEndListeners(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
Since no transitions are followed when leaving the inner activity,
it is needed to call the end listeners yourself. |
void |
completed(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
void |
completing(org.activiti.engine.delegate.DelegateExecution execution,
org.activiti.engine.delegate.DelegateExecution subProcessInstance)
|
protected boolean |
completionConditionSatisfied(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
protected abstract void |
createInstances(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
void |
execute(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
protected void |
executeOriginalBehavior(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
int loopCounter)
|
String |
getCollectionElementVariable()
|
org.activiti.engine.delegate.Expression |
getCollectionExpression()
|
String |
getCollectionVariable()
|
org.activiti.engine.delegate.Expression |
getCompletionConditionExpression()
|
org.activiti.engine.delegate.Expression |
getLoopCardinalityExpression()
|
protected Integer |
getLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName)
|
protected Integer |
getLoopVariableLocal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName)
|
protected boolean |
isExtraScopeNeeded()
|
void |
lastExecutionEnded(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
protected void |
logLoopDetails(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String custom,
int loopCounter,
int nrOfCompletedInstances,
int nrOfActiveInstances,
int nrOfInstances)
|
protected int |
resolveLoopCardinality(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
protected int |
resolveNrOfInstances(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
|
void |
setCollectionElementVariable(String collectionElementVariable)
|
void |
setCollectionExpression(org.activiti.engine.delegate.Expression collectionExpression)
|
void |
setCollectionVariable(String collectionVariable)
|
void |
setCompletionConditionExpression(org.activiti.engine.delegate.Expression completionConditionExpression)
|
void |
setInnerActivityBehavior(org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior)
|
void |
setLoopCardinalityExpression(org.activiti.engine.delegate.Expression loopCardinalityExpression)
|
protected void |
setLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName,
Object value)
|
void |
signal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String signalName,
Object signalData)
|
protected boolean |
usesCollection()
|
Methods inherited from class org.activiti.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 |
LOGGER
protected static final Logger LOGGER
NUMBER_OF_INSTANCES
protected final String NUMBER_OF_INSTANCES
- See Also:
- Constant Field Values
NUMBER_OF_ACTIVE_INSTANCES
protected final String NUMBER_OF_ACTIVE_INSTANCES
- See Also:
- Constant Field Values
NUMBER_OF_COMPLETED_INSTANCES
protected final String NUMBER_OF_COMPLETED_INSTANCES
- See Also:
- Constant Field Values
LOOP_COUNTER
protected final String LOOP_COUNTER
- See Also:
- Constant Field Values
activity
protected org.activiti.engine.impl.pvm.process.ActivityImpl activity
innerActivityBehavior
protected org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior
loopCardinalityExpression
protected org.activiti.engine.delegate.Expression loopCardinalityExpression
completionConditionExpression
protected org.activiti.engine.delegate.Expression completionConditionExpression
collectionExpression
protected org.activiti.engine.delegate.Expression collectionExpression
collectionVariable
protected String collectionVariable
collectionElementVariable
protected String collectionElementVariable
MultiInstanceActivityBehavior
public MultiInstanceActivityBehavior(org.activiti.engine.impl.pvm.process.ActivityImpl activity,
org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior)
- Parameters:
innerActivityBehavior
- The original ActivityBehavior
of the activity
that will be wrapped inside this behavior.isSequential
- Indicates whether the multi instance behavior
must be sequential or parallel
execute
public void execute(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
throws Exception
- Specified by:
execute
in interface org.activiti.engine.impl.pvm.delegate.ActivityBehavior
- Overrides:
execute
in class org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
- Throws:
Exception
createInstances
protected abstract void createInstances(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
throws Exception
- Throws:
Exception
signal
public void signal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String signalName,
Object signalData)
throws Exception
- Specified by:
signal
in interface org.activiti.engine.impl.pvm.delegate.SignallableActivityBehavior
- Overrides:
signal
in class org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
- Throws:
Exception
lastExecutionEnded
public void lastExecutionEnded(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
- Specified by:
lastExecutionEnded
in interface org.activiti.engine.impl.pvm.delegate.CompositeActivityBehavior
completing
public void completing(org.activiti.engine.delegate.DelegateExecution execution,
org.activiti.engine.delegate.DelegateExecution subProcessInstance)
throws Exception
- Specified by:
completing
in interface org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
- Throws:
Exception
completed
public void completed(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
throws Exception
- Specified by:
completed
in interface org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
- Throws:
Exception
resolveNrOfInstances
protected int resolveNrOfInstances(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
executeOriginalBehavior
protected void executeOriginalBehavior(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
int loopCounter)
throws Exception
- Throws:
Exception
usesCollection
protected boolean usesCollection()
isExtraScopeNeeded
protected boolean isExtraScopeNeeded()
resolveLoopCardinality
protected int resolveLoopCardinality(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
completionConditionSatisfied
protected boolean completionConditionSatisfied(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
setLoopVariable
protected void setLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName,
Object value)
getLoopVariable
protected Integer getLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName)
getLoopVariableLocal
protected Integer getLoopVariableLocal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String variableName)
callActivityEndListeners
protected void callActivityEndListeners(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
- Since no transitions are followed when leaving the inner activity,
it is needed to call the end listeners yourself.
logLoopDetails
protected void logLoopDetails(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
String custom,
int loopCounter,
int nrOfCompletedInstances,
int nrOfActiveInstances,
int nrOfInstances)
getLoopCardinalityExpression
public org.activiti.engine.delegate.Expression getLoopCardinalityExpression()
setLoopCardinalityExpression
public void setLoopCardinalityExpression(org.activiti.engine.delegate.Expression loopCardinalityExpression)
getCompletionConditionExpression
public org.activiti.engine.delegate.Expression getCompletionConditionExpression()
setCompletionConditionExpression
public void setCompletionConditionExpression(org.activiti.engine.delegate.Expression completionConditionExpression)
getCollectionExpression
public org.activiti.engine.delegate.Expression getCollectionExpression()
setCollectionExpression
public void setCollectionExpression(org.activiti.engine.delegate.Expression collectionExpression)
getCollectionVariable
public String getCollectionVariable()
setCollectionVariable
public void setCollectionVariable(String collectionVariable)
getCollectionElementVariable
public String getCollectionElementVariable()
setCollectionElementVariable
public void setCollectionElementVariable(String collectionElementVariable)
setInnerActivityBehavior
public void setInnerActivityBehavior(org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior)
Copyright © 2013 evolveum. All Rights Reserved.