Package org.flowable.engine.impl.dynamic
Class AbstractDynamicStateManager
java.lang.Object
org.flowable.engine.impl.dynamic.AbstractDynamicStateManager
- Direct Known Subclasses:
DefaultDynamicStateManager,ProcessInstanceMigrationManagerImpl
- Author:
- Tijs Rademakers, Dennis Federico
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected List<ExecutionEntity>createBoundaryEvents(List<BoundaryEvent> boundaryEvents, ExecutionEntity execution, CommandContext commandContext) protected ExecutionEntitycreateCallActivityInstance(CallActivity callActivity, ProcessDefinition subProcessDefinition, ExecutionEntity parentExecution, String initialActivityId, CommandContext commandContext) protected List<ExecutionEntity>createEmbeddedSubProcessAndExecutions(Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, List<ExecutionEntity> movingExecutions, MoveExecutionEntityContainer moveExecutionEntityContainer, ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) protected ExecutionEntitycreateEmbeddedSubProcessHierarchy(SubProcess subProcess, ExecutionEntity defaultParentExecution, Map<String, SubProcess> subProcessesToCreate, Set<String> movingExecutionIds, ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) protected MoveExecutionEntityContainercreateMoveExecutionEntityContainer(MoveActivityIdContainer activityContainer, List<ExecutionEntity> executions, CommandContext commandContext) protected ExecutionEntitydeleteDirectParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, Collection<String> executionIdsNotToDelete, ProcessDefinition procDefToMigrateTo, MoveExecutionEntityContainer moveExecutionContainer, CommandContext commandContext) protected ExecutionEntitydeleteParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, Collection<String> executionIdsNotToDelete, CommandContext commandContext) protected ExecutionEntitydeleteParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, CommandContext commandContext) protected voiddoMoveExecutionState(ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) protected voidexecuteBoundaryEvents(Collection<BoundaryEvent> boundaryEvents, ExecutionEntity execution) protected voidexecuteBoundaryEvents(List<BoundaryEvent> boundaryEvents, List<ExecutionEntity> boundaryEventExecutions) protected StringgetFlowElementMultiInstanceParentId(FlowElement flowElement) protected List<FlowElement>getFlowElementsInSubProcess(SubProcess subProcess, Collection<FlowElement> flowElements) protected voidhandleExternalWorkerServiceTaskJobUpdate(ExecutionEntity childExecution, CommandContext commandContext) protected voidhandleServiceTaskJobUpdate(ExecutionEntity childExecution, CommandContext commandContext) protected voidhandleUserTaskNewAssignee(ExecutionEntity taskExecution, String newAssigneeId, CommandContext commandContext) protected voidhandleUserTaskNewOwner(ExecutionEntity taskExecution, String newOwnerId, CommandContext commandContext) protected booleanhasSameMultiInstanceConfig(FlowElement sourceElement, FlowElement targetElement) protected abstract booleanisDirectFlowElementExecutionMigration(FlowElement currentFlowElement, FlowElement newFlowElement) protected booleanisEventSubProcessStart(FlowElement flowElement) protected booleanisExecutionInsideMultiInstance(ExecutionEntity execution) protected booleanisExpression(String variableName) protected booleanisFlowElementMultiInstance(FlowElement flowElement) protected booleanisOnlyRemainingExecutionAtParentScope(ExecutionEntity executionEntity, Set<String> ignoreExecutionIds, CommandContext commandContext) protected booleanisSubProcessAncestorOfAnyExecution(String subProcessId, List<ExecutionEntity> executions) protected booleanisSubProcessAncestorOfAnyNewFlowElements(String subProcessId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> flowElements) protected booleanisSubProcessContainerOfAnyFlowElement(String subProcessId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements) protected ExecutionEntitymigrateExecutionEntity(ExecutionEntity parentExecutionEntity, ExecutionEntity childExecution, FlowElement originalElement, FlowElement newFlowElement, CommandContext commandContext) protected voidprepareMoveExecutionEntityContainer(MoveExecutionEntityContainer moveExecutionContainer, ProcessDefinition migrateToProcessDefinition, CommandContext commandContext) protected voidprocessCreatedEventSubProcess(EventSubProcess eventSubProcess, ExecutionEntity eventSubProcessExecution, Set<String> movingExecutionIds, CommandContext commandContext) processDataObjects(Collection<ValuedDataObject> dataObjects) protected voidprocessPendingEventSubProcessesStartEvents(ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) protected abstract Map<String,List<ExecutionEntity>> resolveActiveEmbeddedSubProcesses(String processInstanceId, CommandContext commandContext) protected ExecutionEntityresolveActiveExecution(String executionId, CommandContext commandContext) protected List<ExecutionEntity>resolveActiveExecutions(String processInstanceId, String activityId, CommandContext commandContext) resolveEnableActivityContainers(ChangeActivityStateBuilderImpl changeActivityStateBuilder) protected FlowElementresolveFlowElementFromBpmnModel(BpmnModel bpmnModel, String activityId) resolveMoveExecutionEntityContainers(ChangeActivityStateBuilderImpl changeActivityStateBuilder, Map<String, Object> variables, CommandContext commandContext) protected ExecutionEntityresolveParentExecutionToDelete(ExecutionEntity execution, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements) protected ProcessDefinitionresolveProcessDefinition(String processDefinitionKey, Integer processDefinitionVersion, String tenantId, CommandContext commandContext) protected voidsafeDeleteSubProcessInstance(String processInstanceId, List<ExecutionEntity> executionsPool, String deleteReason, CommandContext commandContext) protected booleansameBoundaryEventDefinition(BoundaryEvent sourceEvent, BoundaryEvent targetEvent)
-
Field Details
-
LOGGER
protected final org.slf4j.Logger LOGGER
-
-
Constructor Details
-
AbstractDynamicStateManager
public AbstractDynamicStateManager()
-
-
Method Details
-
resolveMoveExecutionEntityContainers
public List<MoveExecutionEntityContainer> resolveMoveExecutionEntityContainers(ChangeActivityStateBuilderImpl changeActivityStateBuilder, Map<String, Object> variables, CommandContext commandContext) -
resolveEnableActivityContainers
public List<EnableActivityContainer> resolveEnableActivityContainers(ChangeActivityStateBuilderImpl changeActivityStateBuilder) -
resolveActiveExecution
-
resolveActiveExecutions
protected List<ExecutionEntity> resolveActiveExecutions(String processInstanceId, String activityId, CommandContext commandContext) -
createMoveExecutionEntityContainer
protected MoveExecutionEntityContainer createMoveExecutionEntityContainer(MoveActivityIdContainer activityContainer, List<ExecutionEntity> executions, CommandContext commandContext) -
prepareMoveExecutionEntityContainer
protected void prepareMoveExecutionEntityContainer(MoveExecutionEntityContainer moveExecutionContainer, ProcessDefinition migrateToProcessDefinition, CommandContext commandContext) -
resolveFlowElementFromBpmnModel
-
doMoveExecutionState
protected void doMoveExecutionState(ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) -
processPendingEventSubProcessesStartEvents
protected void processPendingEventSubProcessesStartEvents(ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) -
resolveActiveEmbeddedSubProcesses
protected abstract Map<String,List<ExecutionEntity>> resolveActiveEmbeddedSubProcesses(String processInstanceId, CommandContext commandContext) -
isDirectFlowElementExecutionMigration
protected abstract boolean isDirectFlowElementExecutionMigration(FlowElement currentFlowElement, FlowElement newFlowElement) -
safeDeleteSubProcessInstance
protected void safeDeleteSubProcessInstance(String processInstanceId, List<ExecutionEntity> executionsPool, String deleteReason, CommandContext commandContext) -
deleteParentExecutions
protected ExecutionEntity deleteParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, CommandContext commandContext) -
deleteParentExecutions
protected ExecutionEntity deleteParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, Collection<String> executionIdsNotToDelete, CommandContext commandContext) -
deleteDirectParentExecutions
protected ExecutionEntity deleteDirectParentExecutions(String parentExecutionId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, Collection<String> executionIdsNotToDelete, ProcessDefinition procDefToMigrateTo, MoveExecutionEntityContainer moveExecutionContainer, CommandContext commandContext) -
isSubProcessContainerOfAnyFlowElement
protected boolean isSubProcessContainerOfAnyFlowElement(String subProcessId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements) -
resolveParentExecutionToDelete
protected ExecutionEntity resolveParentExecutionToDelete(ExecutionEntity execution, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements) -
createEmbeddedSubProcessAndExecutions
protected List<ExecutionEntity> createEmbeddedSubProcessAndExecutions(Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> moveToFlowElements, List<ExecutionEntity> movingExecutions, MoveExecutionEntityContainer moveExecutionEntityContainer, ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) -
isSubProcessAncestorOfAnyExecution
protected boolean isSubProcessAncestorOfAnyExecution(String subProcessId, List<ExecutionEntity> executions) -
isSubProcessAncestorOfAnyNewFlowElements
protected boolean isSubProcessAncestorOfAnyNewFlowElements(String subProcessId, Collection<MoveExecutionEntityContainer.FlowElementMoveEntry> flowElements) -
getFlowElementsInSubProcess
protected List<FlowElement> getFlowElementsInSubProcess(SubProcess subProcess, Collection<FlowElement> flowElements) -
createEmbeddedSubProcessHierarchy
protected ExecutionEntity createEmbeddedSubProcessHierarchy(SubProcess subProcess, ExecutionEntity defaultParentExecution, Map<String, SubProcess> subProcessesToCreate, Set<String> movingExecutionIds, ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) -
processDataObjects
-
executeBoundaryEvents
protected void executeBoundaryEvents(Collection<BoundaryEvent> boundaryEvents, ExecutionEntity execution) -
createCallActivityInstance
protected ExecutionEntity createCallActivityInstance(CallActivity callActivity, ProcessDefinition subProcessDefinition, ExecutionEntity parentExecution, String initialActivityId, CommandContext commandContext) -
migrateExecutionEntity
protected ExecutionEntity migrateExecutionEntity(ExecutionEntity parentExecutionEntity, ExecutionEntity childExecution, FlowElement originalElement, FlowElement newFlowElement, CommandContext commandContext) -
handleServiceTaskJobUpdate
protected void handleServiceTaskJobUpdate(ExecutionEntity childExecution, CommandContext commandContext) -
handleExternalWorkerServiceTaskJobUpdate
protected void handleExternalWorkerServiceTaskJobUpdate(ExecutionEntity childExecution, CommandContext commandContext) -
handleUserTaskNewAssignee
protected void handleUserTaskNewAssignee(ExecutionEntity taskExecution, String newAssigneeId, CommandContext commandContext) -
handleUserTaskNewOwner
protected void handleUserTaskNewOwner(ExecutionEntity taskExecution, String newOwnerId, CommandContext commandContext) -
isEventSubProcessStart
-
createBoundaryEvents
protected List<ExecutionEntity> createBoundaryEvents(List<BoundaryEvent> boundaryEvents, ExecutionEntity execution, CommandContext commandContext) -
executeBoundaryEvents
protected void executeBoundaryEvents(List<BoundaryEvent> boundaryEvents, List<ExecutionEntity> boundaryEventExecutions) -
isExecutionInsideMultiInstance
-
getFlowElementMultiInstanceParentId
-
isFlowElementMultiInstance
-
hasSameMultiInstanceConfig
-
processCreatedEventSubProcess
protected void processCreatedEventSubProcess(EventSubProcess eventSubProcess, ExecutionEntity eventSubProcessExecution, Set<String> movingExecutionIds, CommandContext commandContext) -
sameBoundaryEventDefinition
-
isOnlyRemainingExecutionAtParentScope
protected boolean isOnlyRemainingExecutionAtParentScope(ExecutionEntity executionEntity, Set<String> ignoreExecutionIds, CommandContext commandContext) -
isExpression
-
resolveProcessDefinition
protected ProcessDefinition resolveProcessDefinition(String processDefinitionKey, Integer processDefinitionVersion, String tenantId, CommandContext commandContext)
-