Package org.flowable.engine.impl.agenda
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 org.flowable.engine.impl.agenda.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(org.flowable.bpmn.model.FlowElement currentFlowElement) protected ExecutionEntityfindNextParentScopeExecutionWithAllEndedChildExecutions(ExecutionEntity executionEntity, ExecutionEntity executionEntityToIgnore) protected org.flowable.bpmn.model.FlowNodegetFlowNode(org.flowable.bpmn.model.FlowElement currentFlowElement) protected booleanhandleActivityEnd(org.flowable.bpmn.model.FlowNode flowNode) protected voidhandleAdhocSubProcess(org.flowable.bpmn.model.FlowNode flowNode) protected voidhandleAsynchronousLeave(org.flowable.bpmn.model.FlowElement currentFlowElement, org.flowable.bpmn.model.FlowNode sourceFlowNode) protected voidhandleFlowNode(org.flowable.bpmn.model.FlowNode flowNode) protected voidprotected voidleaveFlowNode(org.flowable.bpmn.model.FlowNode flowNode) voidrun()protected booleanshouldExecuteEndListeners(org.flowable.bpmn.model.FlowNode flowNode) Methods inherited from class org.flowable.engine.impl.agenda.AbstractOperation
executeExecutionListeners, executeExecutionListeners, findFirstParentScopeExecution, getAgenda, getCommandContext, getCurrentFlowElement, getExecution, setAgenda, setCommandContext, setExecution
-
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
protected org.flowable.bpmn.model.FlowNode getFlowNode(org.flowable.bpmn.model.FlowElement currentFlowElement) -
handleAsynchronousLeave
protected void handleAsynchronousLeave(org.flowable.bpmn.model.FlowElement currentFlowElement, org.flowable.bpmn.model.FlowNode sourceFlowNode) -
handleFlowNode
protected void handleFlowNode(org.flowable.bpmn.model.FlowNode flowNode) -
handleActivityEnd
protected boolean handleActivityEnd(org.flowable.bpmn.model.FlowNode flowNode) -
leaveFlowNode
protected void leaveFlowNode(org.flowable.bpmn.model.FlowNode flowNode) -
handleAdhocSubProcess
protected void handleAdhocSubProcess(org.flowable.bpmn.model.FlowNode flowNode) -
handleSequenceFlow
protected void handleSequenceFlow() -
cleanupCompensation
protected void cleanupCompensation() -
cleanupExecutions
protected void cleanupExecutions(org.flowable.bpmn.model.FlowElement currentFlowElement) -
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
protected boolean shouldExecuteEndListeners(org.flowable.bpmn.model.FlowNode flowNode)
-