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

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.ExclusiveGatewayActivityBehavior
All Implemented Interfaces:
CoreActivityBehavior<ActivityExecution>, ActivityBehavior, SignallableActivityBehavior

public class ExclusiveGatewayActivityBehavior
extends GatewayActivityBehavior

implementation of the Exclusive Gateway/XOR gateway/exclusive data-based gateway as defined in the BPMN specification.

Author:
Joram Barrez

Field Summary
protected static BpmnBehaviorLogger LOG
           
 
Fields inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
 
Constructor Summary
ExclusiveGatewayActivityBehavior()
           
 
Method Summary
 void doLeave(ActivityExecution execution)
          The default behaviour of BPMN, taking every outgoing sequence flow (where the condition evaluates to true), is not valid for an exclusive gateway.
 
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
execute, 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 BpmnBehaviorLogger LOG
Constructor Detail

ExclusiveGatewayActivityBehavior

public ExclusiveGatewayActivityBehavior()
Method Detail

doLeave

public void doLeave(ActivityExecution execution)
The default behaviour of BPMN, taking every outgoing sequence flow (where the condition evaluates to true), is not valid for an exclusive gateway. Hence, this behaviour is overriden and replaced by the correct behavior: selecting the first sequence flow which condition evaluates to true (or which hasn't got a condition) and leaving the activity through that sequence flow. If no sequence flow is selected (ie all conditions evaluate to false), then the default sequence flow is taken (if defined).

Overrides:
doLeave in class FlowNodeActivityBehavior


Copyright © 2017 camunda services GmbH. All rights reserved.