Class ParallelGatewayActivityBehavior
- java.lang.Object
-
- org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
-
- org.activiti.engine.impl.bpmn.behavior.GatewayActivityBehavior
-
- org.activiti.engine.impl.bpmn.behavior.ParallelGatewayActivityBehavior
-
- All Implemented Interfaces:
java.io.Serializable,ActivityBehavior,TriggerableActivityBehavior
public class ParallelGatewayActivityBehavior extends GatewayActivityBehavior
Implementation of the Parallel Gateway/AND gateway as defined in the BPMN 2.0 specification. The Parallel Gateway can be used for splitting a path of execution into multiple paths of executions (AND-split/fork behavior), one for every outgoing sequence flow. The Parallel Gateway can also be used for merging or joining paths of execution (AND-join). In this case, on every incoming sequence flow an execution needs to arrive, before leaving the Parallel Gateway (and potentially then doing the fork behavior in case of multiple outgoing sequence flow). Note that there is a slight difference to spec (p. 436): "The parallel gateway is activated if there is at least one Token on each incoming sequence flow." We only check the number of incoming tokens to the number of sequenceflow. So if two tokens would arrive through the same sequence flow, our implementation would activate the gateway. Note that a Parallel Gateway having one incoming and multiple outgoing sequence flow, is the same as having multiple outgoing sequence flow on a given activity. However, a parallel gateway does NOT check conditions on the outgoing sequence flow.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
-
-
Constructor Summary
Constructors Constructor Description ParallelGatewayActivityBehavior()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Collection<ExecutionEntity>cleanJoinedExecutions(java.util.Collection<ExecutionEntity> joinedExecutions, DelegateExecution multiInstanceExecution)voidexecute(DelegateExecution execution)Default behaviour: just leave the activity with no extra functionality.protected DelegateExecutionfindMultiInstanceParentExecution(DelegateExecution execution)protected booleanhasMultiInstanceParent(org.activiti.bpmn.model.FlowNode flowNode)protected booleanisChildOfMultiInstanceExecution(DelegateExecution executionEntity, DelegateExecution multiInstanceExecution)-
Methods inherited from class org.activiti.engine.impl.bpmn.behavior.GatewayActivityBehavior
lockFirstParentScope
-
Methods inherited from class org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
leave, leaveIgnoreConditions, parseActivityType, trigger
-
-
-
-
Method Detail
-
execute
public void execute(DelegateExecution execution)
Description copied from class:FlowNodeActivityBehaviorDefault behaviour: just leave the activity with no extra functionality.- Specified by:
executein interfaceActivityBehavior- Overrides:
executein classFlowNodeActivityBehavior
-
cleanJoinedExecutions
protected java.util.Collection<ExecutionEntity> cleanJoinedExecutions(java.util.Collection<ExecutionEntity> joinedExecutions, DelegateExecution multiInstanceExecution)
-
isChildOfMultiInstanceExecution
protected boolean isChildOfMultiInstanceExecution(DelegateExecution executionEntity, DelegateExecution multiInstanceExecution)
-
hasMultiInstanceParent
protected boolean hasMultiInstanceParent(org.activiti.bpmn.model.FlowNode flowNode)
-
findMultiInstanceParentExecution
protected DelegateExecution findMultiInstanceParentExecution(DelegateExecution execution)
-
-