Class ExclusiveGatewayActivityBehavior
- java.lang.Object
-
- org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
-
- org.camunda.bpm.engine.impl.bpmn.behavior.GatewayActivityBehavior
-
- 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
Fields Modifier and Type Field Description protected static BpmnBehaviorLogger
LOG
-
Fields inherited from class org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior
bpmnActivityBehavior
-
-
Constructor Summary
Constructors Constructor Description ExclusiveGatewayActivityBehavior()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
-
-
-
-
Field Detail
-
LOG
protected static BpmnBehaviorLogger LOG
-
-
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 classFlowNodeActivityBehavior
-
-