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
public class TakeOutgoingSequenceFlowsOperation extends AbstractOperation
Operation which purpose is to leave aFlowNode. This can be done by setting either theFlowNodeor selecting a particularSequenceFlow: - when the execution currently is at aFlowNode, leaves it by following the outgoing sequence flow, evaluating conditions if necessary. - when the execution currently is at aSequenceFlow, this sequence flow will be followed. Any condition is ignored, as the assumed use case for this situation is a customActivityBehavior(such as a gateway) that has non-default behavior of leaving theFlowNodeby checking conditions on all sequence flow and taking those which evaluate to true.- Author:
- Joram Barrez, Tijs Rademakers
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanevaluateConditionsprotected booleanforcedSynchronous-
Fields inherited from class org.flowable.engine.impl.agenda.AbstractOperation
agenda, commandContext, execution
-
-
Constructor Summary
Constructors Constructor Description TakeOutgoingSequenceFlowsOperation(CommandContext commandContext, ExecutionEntity executionEntity, boolean evaluateConditions, boolean forcedSynchronous)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanallChildExecutionsEnded(ExecutionEntity parentExecutionEntity, ExecutionEntity executionEntityToIgnore)protected voidcleanupCompensation()protected 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 voidhandleSequenceFlow()protected 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
-
-
-
-
Constructor Detail
-
TakeOutgoingSequenceFlowsOperation
public TakeOutgoingSequenceFlowsOperation(CommandContext commandContext, ExecutionEntity executionEntity, boolean evaluateConditions, boolean forcedSynchronous)
-
-
Method Detail
-
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)
-
-