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)
|
java.lang.String |
getCollectionElementVariable()
|
org.activiti.engine.delegate.Expression |
getCollectionExpression()
|
java.lang.String |
getCollectionVariable()
|
org.activiti.engine.delegate.Expression |
getCompletionConditionExpression()
|
org.activiti.engine.delegate.Expression |
getLoopCardinalityExpression()
|
protected java.lang.Integer |
getLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.String variableName)
|
protected java.lang.Integer |
getLoopVariableLocal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.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,
java.lang.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(java.lang.String collectionElementVariable)
|
void |
setCollectionExpression(org.activiti.engine.delegate.Expression collectionExpression)
|
void |
setCollectionVariable(java.lang.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,
java.lang.String variableName,
java.lang.Object value)
|
void |
signal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.String signalName,
java.lang.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 java.util.logging.Logger LOGGER
NUMBER_OF_INSTANCES
protected final java.lang.String NUMBER_OF_INSTANCES
- See Also:
- Constant Field Values
NUMBER_OF_ACTIVE_INSTANCES
protected final java.lang.String NUMBER_OF_ACTIVE_INSTANCES
- See Also:
- Constant Field Values
NUMBER_OF_COMPLETED_INSTANCES
protected final java.lang.String NUMBER_OF_COMPLETED_INSTANCES
- See Also:
- Constant Field Values
LOOP_COUNTER
protected final java.lang.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 java.lang.String collectionVariable
collectionElementVariable
protected java.lang.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 java.lang.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:
java.lang.Exception
createInstances
protected abstract void createInstances(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
throws java.lang.Exception
- Throws:
java.lang.Exception
signal
public void signal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.String signalName,
java.lang.Object signalData)
throws java.lang.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:
java.lang.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 java.lang.Exception
- Specified by:
completing
in interface org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
- Throws:
java.lang.Exception
completed
public void completed(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution)
throws java.lang.Exception
- Specified by:
completed
in interface org.activiti.engine.impl.pvm.delegate.SubProcessActivityBehavior
- Throws:
java.lang.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 java.lang.Exception
- Throws:
java.lang.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,
java.lang.String variableName,
java.lang.Object value)
getLoopVariable
protected java.lang.Integer getLoopVariable(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.String variableName)
getLoopVariableLocal
protected java.lang.Integer getLoopVariableLocal(org.activiti.engine.impl.pvm.delegate.ActivityExecution execution,
java.lang.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,
java.lang.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 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)
setInnerActivityBehavior
public void setInnerActivityBehavior(org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior innerActivityBehavior)
Copyright © 2012 evolveum. All Rights Reserved.