org.camunda.bpm.engine.impl.bpmn.behavior
Class ParallelGatewayActivityBehavior

java.lang.Object
  extended by org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
      extended by org.camunda.bpm.engine.impl.bpmn.behavior.GatewayActivityBehavior
          extended by org.camunda.bpm.engine.impl.bpmn.behavior.ParallelGatewayActivityBehavior
All Implemented Interfaces:
CoreActivityBehavior<ActivityExecution>, ActivityBehavior, SignallableActivityBehavior

public class ParallelGatewayActivityBehavior
extends GatewayActivityBehavior

Implementation of the Parallel Gateway/AND gateway as definined 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 ougoing 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.

Author:
Joram Barrez, Tom Baeyens

Field Summary
protected static BpmnBehaviorLogger LOG
           
 
Fields inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
 
Constructor Summary
ParallelGatewayActivityBehavior()
           
 
Method Summary
 void execute(ActivityExecution execution)
          Default behaviour: just leave the activity with no extra functionality.
 
Methods inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.GatewayActivityBehavior
lockConcurrentRoot
 
Methods inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
doLeave, leave, leaveIgnoreConditions, signal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static final BpmnBehaviorLogger LOG
Constructor Detail

ParallelGatewayActivityBehavior

public ParallelGatewayActivityBehavior()
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 interface CoreActivityBehavior<ActivityExecution>
Specified by:
execute in interface ActivityBehavior
Overrides:
execute in class FlowNodeActivityBehavior
Throws:
Exception


Copyright © 2017 camunda services GmbH. All rights reserved.