Package org.flowable.engine.impl.dynamic
Class AbstractDynamicStateManager
- java.lang.Object
-
- org.flowable.engine.impl.dynamic.AbstractDynamicStateManager
-
- Direct Known Subclasses:
DefaultDynamicStateManager,ProcessInstanceMigrationManagerImpl
public abstract class AbstractDynamicStateManager extends Object
- Author:
- Tijs Rademakers, Dennis Federico
-
-
Field Summary
Fields Modifier and Type Field Description protected org.slf4j.LoggerLOGGER
-
Constructor Summary
Constructors Constructor Description AbstractDynamicStateManager()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected List<ExecutionEntity>createBoundaryEvents(List<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, ExecutionEntity execution, CommandContext commandContext)protected ExecutionEntitycreateCallActivityInstance(org.flowable.bpmn.model.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(org.flowable.bpmn.model.SubProcess subProcess, ExecutionEntity defaultParentExecution, Map<String,org.flowable.bpmn.model.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<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, ExecutionEntity execution)protected voidexecuteBoundaryEvents(List<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, List<ExecutionEntity> boundaryEventExecutions)protected StringgetFlowElementMultiInstanceParentId(org.flowable.bpmn.model.FlowElement flowElement)protected List<org.flowable.bpmn.model.FlowElement>getFlowElementsInSubProcess(org.flowable.bpmn.model.SubProcess subProcess, Collection<org.flowable.bpmn.model.FlowElement> flowElements)protected voidhandleExternalWorkerServiceTaskJobUpdate(ExecutionEntity childExecution, CommandContext commandContext)protected voidhandleUserTaskNewAssignee(ExecutionEntity taskExecution, String newAssigneeId, CommandContext commandContext)protected voidhandleUserTaskNewOwner(ExecutionEntity taskExecution, String newOwnerId, CommandContext commandContext)protected booleanhasSameMultiInstanceConfig(org.flowable.bpmn.model.FlowElement sourceElement, org.flowable.bpmn.model.FlowElement targetElement)protected abstract booleanisDirectFlowElementExecutionMigration(org.flowable.bpmn.model.FlowElement currentFlowElement, org.flowable.bpmn.model.FlowElement newFlowElement)protected booleanisEventSubProcessStart(org.flowable.bpmn.model.FlowElement flowElement)protected booleanisExecutionInsideMultiInstance(ExecutionEntity execution)protected booleanisExpression(String variableName)protected booleanisFlowElementMultiInstance(org.flowable.bpmn.model.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, org.flowable.bpmn.model.FlowElement newFlowElement, CommandContext commandContext)protected voidprepareMoveExecutionEntityContainer(MoveExecutionEntityContainer moveExecutionContainer, ProcessDefinition migrateToProcessDefinition, CommandContext commandContext)protected voidprocessCreatedEventSubProcess(org.flowable.bpmn.model.EventSubProcess eventSubProcess, ExecutionEntity eventSubProcessExecution, Set<String> movingExecutionIds, CommandContext commandContext)protected Map<String,Object>processDataObjects(Collection<org.flowable.bpmn.model.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)protected org.flowable.bpmn.model.FlowElementresolveFlowElementFromBpmnModel(org.flowable.bpmn.model.BpmnModel bpmnModel, String activityId)List<MoveExecutionEntityContainer>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)
-
-
-
Method Detail
-
resolveMoveExecutionEntityContainers
public List<MoveExecutionEntityContainer> resolveMoveExecutionEntityContainers(ChangeActivityStateBuilderImpl changeActivityStateBuilder, Map<String,Object> variables, CommandContext commandContext)
-
resolveActiveExecution
protected ExecutionEntity resolveActiveExecution(String executionId, CommandContext commandContext)
-
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
protected org.flowable.bpmn.model.FlowElement resolveFlowElementFromBpmnModel(org.flowable.bpmn.model.BpmnModel bpmnModel, String activityId)
-
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(org.flowable.bpmn.model.FlowElement currentFlowElement, org.flowable.bpmn.model.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<org.flowable.bpmn.model.FlowElement> getFlowElementsInSubProcess(org.flowable.bpmn.model.SubProcess subProcess, Collection<org.flowable.bpmn.model.FlowElement> flowElements)
-
createEmbeddedSubProcessHierarchy
protected ExecutionEntity createEmbeddedSubProcessHierarchy(org.flowable.bpmn.model.SubProcess subProcess, ExecutionEntity defaultParentExecution, Map<String,org.flowable.bpmn.model.SubProcess> subProcessesToCreate, Set<String> movingExecutionIds, ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext)
-
processDataObjects
protected Map<String,Object> processDataObjects(Collection<org.flowable.bpmn.model.ValuedDataObject> dataObjects)
-
executeBoundaryEvents
protected void executeBoundaryEvents(Collection<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, ExecutionEntity execution)
-
createCallActivityInstance
protected ExecutionEntity createCallActivityInstance(org.flowable.bpmn.model.CallActivity callActivity, ProcessDefinition subProcessDefinition, ExecutionEntity parentExecution, String initialActivityId, CommandContext commandContext)
-
migrateExecutionEntity
protected ExecutionEntity migrateExecutionEntity(ExecutionEntity parentExecutionEntity, ExecutionEntity childExecution, org.flowable.bpmn.model.FlowElement newFlowElement, 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
protected boolean isEventSubProcessStart(org.flowable.bpmn.model.FlowElement flowElement)
-
createBoundaryEvents
protected List<ExecutionEntity> createBoundaryEvents(List<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, ExecutionEntity execution, CommandContext commandContext)
-
executeBoundaryEvents
protected void executeBoundaryEvents(List<org.flowable.bpmn.model.BoundaryEvent> boundaryEvents, List<ExecutionEntity> boundaryEventExecutions)
-
isExecutionInsideMultiInstance
protected boolean isExecutionInsideMultiInstance(ExecutionEntity execution)
-
getFlowElementMultiInstanceParentId
protected String getFlowElementMultiInstanceParentId(org.flowable.bpmn.model.FlowElement flowElement)
-
isFlowElementMultiInstance
protected boolean isFlowElementMultiInstance(org.flowable.bpmn.model.FlowElement flowElement)
-
hasSameMultiInstanceConfig
protected boolean hasSameMultiInstanceConfig(org.flowable.bpmn.model.FlowElement sourceElement, org.flowable.bpmn.model.FlowElement targetElement)
-
processCreatedEventSubProcess
protected void processCreatedEventSubProcess(org.flowable.bpmn.model.EventSubProcess eventSubProcess, ExecutionEntity eventSubProcessExecution, Set<String> movingExecutionIds, CommandContext commandContext)
-
isOnlyRemainingExecutionAtParentScope
protected boolean isOnlyRemainingExecutionAtParentScope(ExecutionEntity executionEntity, Set<String> ignoreExecutionIds, CommandContext commandContext)
-
isExpression
protected boolean isExpression(String variableName)
-
resolveProcessDefinition
protected ProcessDefinition resolveProcessDefinition(String processDefinitionKey, Integer processDefinitionVersion, String tenantId, CommandContext commandContext)
-
-