Class TakeOutgoingSequenceFlowsOperation
java.lang.Object
org.flowable.engine.impl.agenda.AbstractOperation
org.flowable.engine.impl.agenda.TakeOutgoingSequenceFlowsOperation
- All Implemented Interfaces:
Runnable
Operation which purpose is to leave a
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.- Author:
- Joram Barrez, Tijs Rademakers
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanFields inherited from class AbstractOperation
agenda, commandContext, execution -
Constructor Summary
ConstructorsConstructorDescriptionTakeOutgoingSequenceFlowsOperation(CommandContext commandContext, ExecutionEntity executionEntity, boolean evaluateConditions, boolean forcedSynchronous) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanallChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore) protected voidprotected voidcleanupExecutions(FlowElement currentFlowElement) protected ExecutionEntityfindNextParentScopeExecutionWithAllEndedChildExecutions(ExecutionEntity executionEntity, ExecutionEntity executionEntityToIgnore) protected FlowNodegetFlowNode(FlowElement currentFlowElement) protected booleanhandleActivityEnd(FlowNode flowNode) protected voidhandleAdhocSubProcess(FlowNode flowNode) protected voidhandleAsynchronousLeave(FlowElement currentFlowElement, FlowNode sourceFlowNode) protected voidhandleFlowNode(FlowNode flowNode) protected voidprotected voidleaveFlowNode(FlowNode flowNode) voidrun()protected booleanshouldExecuteEndListeners(FlowNode flowNode)
-
Field Details
-
evaluateConditions
protected boolean evaluateConditions -
forcedSynchronous
protected boolean forcedSynchronous
-
-
Constructor Details
-
TakeOutgoingSequenceFlowsOperation
public TakeOutgoingSequenceFlowsOperation(CommandContext commandContext, ExecutionEntity executionEntity, boolean evaluateConditions, boolean forcedSynchronous)
-
-
Method Details
-
run
public void run() -
getFlowNode
-
handleAsynchronousLeave
-
handleFlowNode
-
handleActivityEnd
-
leaveFlowNode
-
handleAdhocSubProcess
-
handleSequenceFlow
protected void handleSequenceFlow() -
cleanupCompensation
protected void cleanupCompensation() -
cleanupExecutions
-
findNextParentScopeExecutionWithAllEndedChildExecutions
protected ExecutionEntity findNextParentScopeExecutionWithAllEndedChildExecutions(ExecutionEntity executionEntity, ExecutionEntity executionEntityToIgnore) - Parameters:
executionEntityToIgnore- The execution entity which we can ignore to be ended, as it's the execution currently being handled in this operation.
-
allChildExecutionsEnded
protected boolean allChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore) -
shouldExecuteEndListeners
-