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<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) 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) 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)
-
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) -
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
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
-
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
-
resolveProcessDefinition
protected ProcessDefinition resolveProcessDefinition(String processDefinitionKey, Integer processDefinitionVersion, String tenantId, CommandContext commandContext)
-