Class CompletePlanItemInstanceOperation
java.lang.Object
org.flowable.cmmn.engine.impl.agenda.operation.CmmnOperation
org.flowable.cmmn.engine.impl.agenda.operation.AbstractPlanItemInstanceOperation
org.flowable.cmmn.engine.impl.agenda.operation.AbstractChangePlanItemInstanceStateOperation
org.flowable.cmmn.engine.impl.agenda.operation.AbstractMovePlanItemInstanceToTerminalStateOperation
org.flowable.cmmn.engine.impl.agenda.operation.CompletePlanItemInstanceOperation
- All Implemented Interfaces:
Runnable
public class CompletePlanItemInstanceOperation
extends AbstractMovePlanItemInstanceToTerminalStateOperation
- Author:
- Joram Barrez
-
Field Summary
Fields inherited from class org.flowable.cmmn.engine.impl.agenda.operation.AbstractPlanItemInstanceOperation
planItemInstanceEntity
Fields inherited from class org.flowable.cmmn.engine.impl.agenda.operation.CmmnOperation
commandContext, isNoop
-
Constructor Summary
ConstructorsConstructorDescriptionCompletePlanItemInstanceOperation
(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Implementing classes should be aware that unlike extending from AbstractChangePlanItemInstanceStateOperation, this method will be executed just before the deleting the entityboolean
protected boolean
Whether multi aggregation needs to be done.protected boolean
Whether variable aggregation should be done when a single instance completes.Methods inherited from class org.flowable.cmmn.engine.impl.agenda.operation.AbstractMovePlanItemInstanceToTerminalStateOperation
aggregateVariablesForAllInstances, aggregateVariablesForSingleInstance, exitChildPlanItemInstances, getVariableAggregations, hasMaxInstanceCount, hasRepetitionOnCollection, hasRepetitionRule, hasRepetitionRuleAndNoEntryCriteria, hasRepetitionRuleEntryCriteria, isAsyncLeave, isRepeatingOnDelete, isWaitingForRepetitionPlanItemInstanceExists, isWithoutStageOrParentIsNotTerminated, resolveEventDefinitionKey, run
Methods inherited from class org.flowable.cmmn.engine.impl.agenda.operation.AbstractChangePlanItemInstanceStateOperation
abortOperationIfNewStateEqualsOldState, createPlanItemLifeCycleEvent, isStateNotChanged, toString
Methods inherited from class org.flowable.cmmn.engine.impl.agenda.operation.AbstractPlanItemInstanceOperation
getCaseInstanceId, getCurrentTime, getPlanItemInstanceEntity, removeSentryRelatedData, setPlanItemInstanceEntity
Methods inherited from class org.flowable.cmmn.engine.impl.agenda.operation.CmmnOperation
childPlanItemInstanceForPlanItemExists, createPlanItemInstanceIfNeeded, createPlanItemInstancesForNewOrReactivatedStage, evaluateReactivationCondition, evaluateReactivationRule, getCaseInstance, getPlanItemCreationOrReactivationType, getPlanModel, getStage, isEventListenerWithAvailableCondition, isNoop, isStage, markAsNoop, setRepetitionCounter
-
Constructor Details
-
CompletePlanItemInstanceOperation
public CompletePlanItemInstanceOperation(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity)
-
-
Method Details
-
getNewState
- Specified by:
getNewState
in classAbstractChangePlanItemInstanceStateOperation
-
getLifeCycleTransition
- Specified by:
getLifeCycleTransition
in classAbstractChangePlanItemInstanceStateOperation
-
isEvaluateRepetitionRule
public boolean isEvaluateRepetitionRule()- Specified by:
isEvaluateRepetitionRule
in classAbstractMovePlanItemInstanceToTerminalStateOperation
-
shouldAggregateForSingleInstance
protected boolean shouldAggregateForSingleInstance()Description copied from class:AbstractMovePlanItemInstanceToTerminalStateOperation
Whether variable aggregation should be done when a single instance completes. This does not need to check whether the plan item instance has variable aggregations, that is the same for all instances. e.g. When an instance completes normally we should aggregate the data, but if it terminates we shouldn't- Specified by:
shouldAggregateForSingleInstance
in classAbstractMovePlanItemInstanceToTerminalStateOperation
-
shouldAggregateForMultipleInstances
protected boolean shouldAggregateForMultipleInstances()Description copied from class:AbstractMovePlanItemInstanceToTerminalStateOperation
Whether multi aggregation needs to be done. This does not need to check whether the plan item instance has variable aggregations, that is the same for all instances. e.g. Multi aggregation needs to be done when we do a normal completion, but not when the plan items are terminated- Specified by:
shouldAggregateForMultipleInstances
in classAbstractMovePlanItemInstanceToTerminalStateOperation
-
internalExecute
protected void internalExecute()Description copied from class:AbstractMovePlanItemInstanceToTerminalStateOperation
Implementing classes should be aware that unlike extending from AbstractChangePlanItemInstanceStateOperation, this method will be executed just before the deleting the entity- Specified by:
internalExecute
in classAbstractMovePlanItemInstanceToTerminalStateOperation
-
getAsyncLeaveTransitionMetadata
- Specified by:
getAsyncLeaveTransitionMetadata
in classAbstractMovePlanItemInstanceToTerminalStateOperation
-
getOperationName
- Specified by:
getOperationName
in classAbstractChangePlanItemInstanceStateOperation
-