Class AbstractCmmnDynamicStateManager
- java.lang.Object
-
- org.flowable.cmmn.engine.impl.runtime.AbstractCmmnDynamicStateManager
-
- Direct Known Subclasses:
CaseInstanceMigrationManagerImpl,DefaultCmmnDynamicStateManager
public abstract class AbstractCmmnDynamicStateManager extends Object
- Author:
- Tijs Rademakers, Valentin Zickner
-
-
Field Summary
Fields Modifier and Type Field Description protected CmmnEngineConfigurationcmmnEngineConfigurationprotected org.slf4j.LoggerLOGGER
-
Constructor Summary
Constructors Constructor Description AbstractCmmnDynamicStateManager(CmmnEngineConfiguration cmmnEngineConfiguration)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected PlanItemInstanceEntitycopyAndInsertPlanItemInstance(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntityToCopy, boolean addToParent)protected voidcreateChildPlanItemInstancesForStage(List<PlanItemInstanceEntity> newPlanItemInstances, Map<String,List<PlanItemInstanceEntity>> runtimePlanItemInstanceMap, Map<String,PlanItemInstanceEntity> terminatedPlanItemInstances, Set<String> newPlanItemInstanceIds, CommandContext commandContext)protected PlanItemInstanceEntitycreatePlanItemInstanceDuplicateForRepetition(PlanItemInstanceEntity planItemInstanceEntity, CommandContext commandContext)protected PlanItemInstanceEntitycreateStageHierarchy(org.flowable.cmmn.model.Stage stage, PlanItemInstanceEntity defaultParentPlanItemInstance, Map<String,org.flowable.cmmn.model.Stage> stagesToCreate, CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)protected PlanItemInstanceEntitycreateStagesAndPlanItemInstances(org.flowable.cmmn.model.PlanItem planItem, CaseInstanceEntity caseInstance, CaseInstanceChangeState caseInstanceChangeState, CommandContext commandContext)protected voiddeleteChildPlanItemInstances(PlanItemInstanceEntity planItemInstance, CommandContext commandContext)protected voiddoMovePlanItemState(CaseInstanceChangeState caseInstanceChangeState, String originalCaseDefinitionId, CommandContext commandContext)protected booleanevaluateRepetitionRule(PlanItemInstanceEntity planItemInstanceEntity, CommandContext commandContext)protected booleanevaluateRepetitionRule(VariableContainer variableContainer, String repetitionCondition, CommandContext commandContext)protected voidexecuteActivatePlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, boolean onlyStages, CommandContext commandContext)protected voidexecuteAddWaitingForRepetitionPlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)protected voidexecuteChangePlanItemIds(CaseInstanceChangeState caseInstanceChangeState, String originalCaseDefinitionId, CommandContext commandContext)protected voidexecuteChangePlanItemInstancesToAvailableState(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, boolean onlyStages, CommandContext commandContext)protected voidexecuteRemoveWaitingForRepetitionPlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)protected voidexecuteTerminatePlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)protected voidexecuteVerifySatisfiedSentryParts(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, String originalCaseDefinitionId, CommandContext commandContext)protected StringgetCaseDefinitionIdToMigrateTo(CaseInstanceChangeState caseInstanceChangeState)protected StringgetCounterVariable(PlanItemInstanceEntity repeatingPlanItemInstanceEntity)protected intgetRepetitionCounter(PlanItemInstanceEntity repeatingPlanItemInstanceEntity)protected voidhandleHumanTaskNewAssignee(PlanItemInstanceEntity taskPlanItemInstance, String newAssigneeId, CommandContext commandContext)protected booleanhasRepetitionRule(PlanItemInstanceEntity planItemInstanceEntity)protected abstract booleanisDirectPlanItemDefinitionMigration(org.flowable.cmmn.model.PlanItemDefinition currentPlanItemDefinition, org.flowable.cmmn.model.PlanItemDefinition newPlanItemDefinition)protected booleanisExpression(String variableName)protected booleanisStageAncestor(String stageId, org.flowable.cmmn.model.PlanItemDefinition planItemDefinition)protected booleanisStageAncestorOfAnyPlanItemInstance(String stageId, Map<String,List<PlanItemInstanceEntity>> planItemInstanceMap)protected booleanisStageContainerOfAnyPlanItemDefinition(String stageId, Collection<MovePlanItemInstanceEntityContainer.PlanItemMoveEntry> moveToPlanItems)protected voidnavigatePlanItemInstances(Map<String,List<PlanItemInstanceEntity>> stagesByPlanItemDefinitionId, CaseDefinition caseDefinition)protected CaseDefinitionresolveCaseDefinition(String caseDefinitionKey, Integer caseDefinitionVersion, String tenantId, CommandContext commandContext)protected PlanItemInstanceEntityresolveParentPlanItemInstanceToDelete(PlanItemInstanceEntity planItemInstance, List<MovePlanItemInstanceEntityContainer.PlanItemMoveEntry> moveToPlanItems)protected org.flowable.cmmn.model.PlanItemresolvePlanItemFromCmmnModel(org.flowable.cmmn.model.CmmnModel cmmnModel, String planItemId, String caseDefinitionId)protected org.flowable.cmmn.model.PlanItemresolvePlanItemFromCmmnModelWithDefinitionId(String planItemDefinitionId, String caseDefinitionId)protected Map<String,List<PlanItemInstanceEntity>>retrievePlanItemInstances(String caseInstanceId)protected voidsetCaseDefinitionIdForPlanItemInstances(Map<String,List<PlanItemInstanceEntity>> stagesByPlanItemDefinitionId, CaseDefinition caseDefinition)protected voidsetRepetitionCounter(PlanItemInstanceEntity repeatingPlanItemInstanceEntity, int counterValue)protected voidterminatePlanItemInstance(PlanItemInstanceEntity planItemInstance, CommandContext commandContext)protected voidverifySatisfiedSentryPartsForCriterion(org.flowable.cmmn.model.Criterion criterion, PlanItemInstanceEntity planItemInstanceEntity, Map<String,List<SentryPartInstanceEntity>> sentryInstanceMap, List<String> skipSentryPartInstanceForDeleteIds, boolean isExitCriterion, org.flowable.cmmn.model.CmmnModel cmmnModel, SentryPartInstanceEntityManager sentryPartInstanceEntityManager)
-
-
-
Field Detail
-
LOGGER
protected final org.slf4j.Logger LOGGER
-
cmmnEngineConfiguration
protected CmmnEngineConfiguration cmmnEngineConfiguration
-
-
Constructor Detail
-
AbstractCmmnDynamicStateManager
public AbstractCmmnDynamicStateManager(CmmnEngineConfiguration cmmnEngineConfiguration)
-
-
Method Detail
-
resolvePlanItemFromCmmnModelWithDefinitionId
protected org.flowable.cmmn.model.PlanItem resolvePlanItemFromCmmnModelWithDefinitionId(String planItemDefinitionId, String caseDefinitionId)
-
resolvePlanItemFromCmmnModel
protected org.flowable.cmmn.model.PlanItem resolvePlanItemFromCmmnModel(org.flowable.cmmn.model.CmmnModel cmmnModel, String planItemId, String caseDefinitionId)
-
doMovePlanItemState
protected void doMovePlanItemState(CaseInstanceChangeState caseInstanceChangeState, String originalCaseDefinitionId, CommandContext commandContext)
-
executeChangePlanItemIds
protected void executeChangePlanItemIds(CaseInstanceChangeState caseInstanceChangeState, String originalCaseDefinitionId, CommandContext commandContext)
-
executeActivatePlanItemInstances
protected void executeActivatePlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, boolean onlyStages, CommandContext commandContext)
-
executeChangePlanItemInstancesToAvailableState
protected void executeChangePlanItemInstancesToAvailableState(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, boolean onlyStages, CommandContext commandContext)
-
executeAddWaitingForRepetitionPlanItemInstances
protected void executeAddWaitingForRepetitionPlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)
-
executeRemoveWaitingForRepetitionPlanItemInstances
protected void executeRemoveWaitingForRepetitionPlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)
-
executeVerifySatisfiedSentryParts
protected void executeVerifySatisfiedSentryParts(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, String originalCaseDefinitionId, CommandContext commandContext)
-
verifySatisfiedSentryPartsForCriterion
protected void verifySatisfiedSentryPartsForCriterion(org.flowable.cmmn.model.Criterion criterion, PlanItemInstanceEntity planItemInstanceEntity, Map<String,List<SentryPartInstanceEntity>> sentryInstanceMap, List<String> skipSentryPartInstanceForDeleteIds, boolean isExitCriterion, org.flowable.cmmn.model.CmmnModel cmmnModel, SentryPartInstanceEntityManager sentryPartInstanceEntityManager)
-
executeTerminatePlanItemInstances
protected void executeTerminatePlanItemInstances(CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)
-
isDirectPlanItemDefinitionMigration
protected abstract boolean isDirectPlanItemDefinitionMigration(org.flowable.cmmn.model.PlanItemDefinition currentPlanItemDefinition, org.flowable.cmmn.model.PlanItemDefinition newPlanItemDefinition)
-
retrievePlanItemInstances
protected Map<String,List<PlanItemInstanceEntity>> retrievePlanItemInstances(String caseInstanceId)
-
setCaseDefinitionIdForPlanItemInstances
protected void setCaseDefinitionIdForPlanItemInstances(Map<String,List<PlanItemInstanceEntity>> stagesByPlanItemDefinitionId, CaseDefinition caseDefinition)
-
navigatePlanItemInstances
protected void navigatePlanItemInstances(Map<String,List<PlanItemInstanceEntity>> stagesByPlanItemDefinitionId, CaseDefinition caseDefinition)
-
isStageContainerOfAnyPlanItemDefinition
protected boolean isStageContainerOfAnyPlanItemDefinition(String stageId, Collection<MovePlanItemInstanceEntityContainer.PlanItemMoveEntry> moveToPlanItems)
-
resolveParentPlanItemInstanceToDelete
protected PlanItemInstanceEntity resolveParentPlanItemInstanceToDelete(PlanItemInstanceEntity planItemInstance, List<MovePlanItemInstanceEntityContainer.PlanItemMoveEntry> moveToPlanItems)
-
createStagesAndPlanItemInstances
protected PlanItemInstanceEntity createStagesAndPlanItemInstances(org.flowable.cmmn.model.PlanItem planItem, CaseInstanceEntity caseInstance, CaseInstanceChangeState caseInstanceChangeState, CommandContext commandContext)
-
createChildPlanItemInstancesForStage
protected void createChildPlanItemInstancesForStage(List<PlanItemInstanceEntity> newPlanItemInstances, Map<String,List<PlanItemInstanceEntity>> runtimePlanItemInstanceMap, Map<String,PlanItemInstanceEntity> terminatedPlanItemInstances, Set<String> newPlanItemInstanceIds, CommandContext commandContext)
-
isStageAncestorOfAnyPlanItemInstance
protected boolean isStageAncestorOfAnyPlanItemInstance(String stageId, Map<String,List<PlanItemInstanceEntity>> planItemInstanceMap)
-
isStageAncestor
protected boolean isStageAncestor(String stageId, org.flowable.cmmn.model.PlanItemDefinition planItemDefinition)
-
createStageHierarchy
protected PlanItemInstanceEntity createStageHierarchy(org.flowable.cmmn.model.Stage stage, PlanItemInstanceEntity defaultParentPlanItemInstance, Map<String,org.flowable.cmmn.model.Stage> stagesToCreate, CaseInstanceChangeState caseInstanceChangeState, CaseInstanceEntity caseInstance, CommandContext commandContext)
-
terminatePlanItemInstance
protected void terminatePlanItemInstance(PlanItemInstanceEntity planItemInstance, CommandContext commandContext)
-
deleteChildPlanItemInstances
protected void deleteChildPlanItemInstances(PlanItemInstanceEntity planItemInstance, CommandContext commandContext)
-
handleHumanTaskNewAssignee
protected void handleHumanTaskNewAssignee(PlanItemInstanceEntity taskPlanItemInstance, String newAssigneeId, CommandContext commandContext)
-
hasRepetitionRule
protected boolean hasRepetitionRule(PlanItemInstanceEntity planItemInstanceEntity)
-
evaluateRepetitionRule
protected boolean evaluateRepetitionRule(PlanItemInstanceEntity planItemInstanceEntity, CommandContext commandContext)
-
evaluateRepetitionRule
protected boolean evaluateRepetitionRule(VariableContainer variableContainer, String repetitionCondition, CommandContext commandContext)
-
createPlanItemInstanceDuplicateForRepetition
protected PlanItemInstanceEntity createPlanItemInstanceDuplicateForRepetition(PlanItemInstanceEntity planItemInstanceEntity, CommandContext commandContext)
-
copyAndInsertPlanItemInstance
protected PlanItemInstanceEntity copyAndInsertPlanItemInstance(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntityToCopy, boolean addToParent)
-
getRepetitionCounter
protected int getRepetitionCounter(PlanItemInstanceEntity repeatingPlanItemInstanceEntity)
-
setRepetitionCounter
protected void setRepetitionCounter(PlanItemInstanceEntity repeatingPlanItemInstanceEntity, int counterValue)
-
getCounterVariable
protected String getCounterVariable(PlanItemInstanceEntity repeatingPlanItemInstanceEntity)
-
isExpression
protected boolean isExpression(String variableName)
-
resolveCaseDefinition
protected CaseDefinition resolveCaseDefinition(String caseDefinitionKey, Integer caseDefinitionVersion, String tenantId, CommandContext commandContext)
-
getCaseDefinitionIdToMigrateTo
protected String getCaseDefinitionIdToMigrateTo(CaseInstanceChangeState caseInstanceChangeState)
-
-