public class TakeOutgoingSequenceFlowsOperation extends AbstractOperation
FlowNode.
This can be done by setting either the FlowNode or selecting a particular SequenceFlow:
- when the execution currently is at a FlowNode, leaves it by following the outgoing sequence flow, evaluating conditions if necessary.
- when the execution currently is at a SequenceFlow, this sequence flow will be followed. Any condition is ignored, as the assumed
use case for this situation is a custom ActivityBehavior (such as a gateway) that has non-default
behavior of leaving the FlowNode by checking conditions on all sequence flow and taking those which evaluate to true.| Modifier and Type | Field and Description |
|---|---|
protected boolean |
evaluateConditions |
protected boolean |
forcedSynchronous |
agenda, commandContext, execution| Constructor and Description |
|---|
TakeOutgoingSequenceFlowsOperation(CommandContext commandContext,
ExecutionEntity executionEntity,
boolean evaluateConditions,
boolean forcedSynchronous) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
allChildExecutionsEnded(ExecutionEntity parentExecutionEntity,
ExecutionEntity executionEntityToIgnore) |
protected void |
cleanupCompensation() |
protected void |
cleanupExecutions(org.flowable.bpmn.model.FlowElement currentFlowElement) |
protected ExecutionEntity |
findNextParentScopeExecutionWithAllEndedChildExecutions(ExecutionEntity executionEntity,
ExecutionEntity executionEntityToIgnore) |
protected org.flowable.bpmn.model.FlowNode |
getFlowNode(org.flowable.bpmn.model.FlowElement currentFlowElement) |
protected boolean |
handleActivityEnd(org.flowable.bpmn.model.FlowNode flowNode) |
protected void |
handleAdhocSubProcess(org.flowable.bpmn.model.FlowNode flowNode) |
protected void |
handleAsynchronousLeave(org.flowable.bpmn.model.FlowElement currentFlowElement,
org.flowable.bpmn.model.FlowNode sourceFlowNode) |
protected void |
handleFlowNode(org.flowable.bpmn.model.FlowNode flowNode) |
protected void |
handleSequenceFlow() |
protected void |
leaveFlowNode(org.flowable.bpmn.model.FlowNode flowNode) |
void |
run() |
executeExecutionListeners, executeExecutionListeners, findFirstParentScopeExecution, getAgenda, getCommandContext, getCurrentFlowElement, getExecution, setAgenda, setCommandContext, setExecutionprotected boolean evaluateConditions
protected boolean forcedSynchronous
public TakeOutgoingSequenceFlowsOperation(CommandContext commandContext, ExecutionEntity executionEntity, boolean evaluateConditions, boolean forcedSynchronous)
public void run()
protected org.flowable.bpmn.model.FlowNode getFlowNode(org.flowable.bpmn.model.FlowElement currentFlowElement)
protected void handleAsynchronousLeave(org.flowable.bpmn.model.FlowElement currentFlowElement,
org.flowable.bpmn.model.FlowNode sourceFlowNode)
protected void handleFlowNode(org.flowable.bpmn.model.FlowNode flowNode)
protected boolean handleActivityEnd(org.flowable.bpmn.model.FlowNode flowNode)
protected void leaveFlowNode(org.flowable.bpmn.model.FlowNode flowNode)
protected void handleAdhocSubProcess(org.flowable.bpmn.model.FlowNode flowNode)
protected void handleSequenceFlow()
protected void cleanupCompensation()
protected void cleanupExecutions(org.flowable.bpmn.model.FlowElement currentFlowElement)
protected ExecutionEntity findNextParentScopeExecutionWithAllEndedChildExecutions(ExecutionEntity executionEntity, ExecutionEntity executionEntityToIgnore)
executionEntityToIgnore - The execution entity which we can ignore to be ended, as it's the execution currently being handled in this operation.protected boolean allChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore)
Copyright © 2022 Flowable. All rights reserved.