@Override public Void execute(CommandContext commandContext) { CommandContextUtil.getAgenda(commandContext).planEvaluateCriteriaOperation(caseInstanceId); return null; }
@Override public void execute(JobEntity job, String configuration, VariableScope variableScope, CommandContext commandContext) { PlanItemInstanceEntity planItemInstance = (PlanItemInstanceEntity) variableScope; CommandContextUtil.getAgenda(commandContext).planTriggerPlanItemInstanceOperation(planItemInstance); }
@Override protected void internalExecute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { CommandContextUtil.getAgenda(commandContext).planTriggerPlanItemInstanceOperation(planItemInstanceEntity); }
@Override public void execute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { CommandContextUtil.getAgenda(commandContext).planOccurPlanItemInstanceOperation(planItemInstanceEntity); }
protected void executeOperations(final CommandContext commandContext) { CmmnEngineAgenda agenda = CommandContextUtil.getAgenda(commandContext); while (!agenda.isEmpty()) { Runnable runnable = agenda.getNextOperation(); if (logger.isDebugEnabled()) { logger.debug("Executing agenda operation {}", runnable); } runnable.run(); } }
@Override public void onStateTransition(CommandContext commandContext, DelegatePlanItemInstance planItemInstance, String transition) { if (PlanItemTransition.TERMINATE.equals(transition) || PlanItemTransition.EXIT.equals(transition)) { // The plan item will be deleted by the regular TerminatePlanItemOperation CommandContextUtil.getAgenda(commandContext).planManualTerminateCaseInstanceOperation(planItemInstance.getReferenceId()); } }
@Override public void execute(JobEntity job, String configuration, VariableScope variableScope, CommandContext commandContext) { if (variableScope instanceof PlanItemInstanceEntity) { CommandContextUtil.getAgenda(commandContext).planActivatePlanItemInstanceOperation((PlanItemInstanceEntity) variableScope, configuration); // configuration == entryCriterionId } else { throw new FlowableException("Invalid usage of " + TYPE + " job handler, variable scope is of type " + variableScope.getClass()); } }
@Override public void execute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { if (!evaluateIsBlocking(planItemInstanceEntity)) { CommandContextUtil.getAgenda(commandContext).planCompletePlanItemInstanceOperation((PlanItemInstanceEntity) planItemInstanceEntity); } }
@Override public void trigger(CommandContext commandContext, PlanItemInstanceEntity planItemInstance) { List<PlanItemInstanceEntity> childPlanItemInstances = planItemInstance.getChildPlanItemInstances(); if (childPlanItemInstances != null) { for (PlanItemInstanceEntity childPlanItemInstance : childPlanItemInstances) { if (StateTransition.isPossible(planItemInstance, PlanItemTransition.COMPLETE)) { CommandContextUtil.getAgenda().planCompletePlanItemInstanceOperation(childPlanItemInstance); } } } CommandContextUtil.getAgenda(commandContext).planCompletePlanItemInstanceOperation(planItemInstance); }
protected CaseInstanceEntity startCaseInstance(CommandContext commandContext, CaseDefinition caseDefinition, CaseInstanceBuilder caseInstanceBuilder) { CaseInstanceEntity caseInstanceEntity = initializeCaseInstanceEntity(commandContext, caseDefinition, caseInstanceBuilder); // The InitPlanModelOperation will take care of initializing all the child plan items of that stage CommandContextUtil.getAgenda(commandContext).planInitPlanModelOperation(caseInstanceEntity); return caseInstanceEntity; }
@Override protected void internalExecute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { if (!PlanItemInstanceState.ENABLED.equals(planItemInstanceEntity.getState())) { throw new FlowableIllegalArgumentException("Can only disable a plan item instance which is in state ENABLED"); } CommandContextUtil.getAgenda(commandContext).planDisablePlanItemInstanceOperation(planItemInstanceEntity); }
@Override public void trigger(CommandContext commandContext, PlanItemInstanceEntity planItemInstance) { if (!PlanItemInstanceState.ACTIVE.equals(planItemInstance.getState())) { throw new FlowableException("Can only trigger a plan item that is in the ACTIVE state"); } CommandContextUtil.getAgenda(commandContext).planCompletePlanItemInstanceOperation((PlanItemInstanceEntity) planItemInstance); }
protected void exitChildPlanItemInstances(String exitCriterionId) { for (PlanItemInstanceEntity child : planItemInstanceEntity.getChildPlanItemInstances()) { if (StateTransition.isPossible(child, PlanItemTransition.EXIT)) { CommandContextUtil.getAgenda(commandContext).planExitPlanItemInstanceOperation(child, exitCriterionId); } } }
@Override protected void internalExecute(CommandContext commandContext, CaseInstanceEntity caseInstanceEntity) { if (!caseInstanceEntity.isCompleteable()) { throw new FlowableIllegalArgumentException("Can only complete a case instance which is marked as completeable. Check if there are active plan item instances."); } CommandContextUtil.getAgenda(commandContext).planCompleteCaseInstanceOperation(caseInstanceEntity); }
@Override public void execute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { MilestoneInstanceEntity milestoneInstanceEntity = createMilestoneInstance(planItemInstanceEntity, commandContext); CommandContextUtil.getCmmnHistoryManager(commandContext).recordMilestoneReached(milestoneInstanceEntity); CommandContextUtil.getAgenda(commandContext).planOccurPlanItemInstanceOperation(planItemInstanceEntity); }
@Override public void execute(JobEntity job, String caseInstanceId, VariableScope variableScope, CommandContext commandContext) { CaseInstanceEntity caseInstance = CommandContextUtil.getCaseInstanceEntityManager(commandContext).findById(caseInstanceId); if (caseInstance != null) { CommandContextUtil.getAgenda(commandContext).planInitPlanModelOperation(caseInstance); } else { throw new FlowableException("Invalid usage of " + TYPE + " job handler, case instance " + caseInstanceId + " was not found."); } }
@Override protected void internalExecute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { if (!PlanItemDefinitionType.STAGE.equals(planItemInstanceEntity.getPlanItemDefinitionType())) { throw new FlowableIllegalArgumentException("Can only complete plan item instances of type stage. Type is " + planItemInstanceEntity.getPlanItemDefinitionType()); } if (!force && !planItemInstanceEntity.isCompleteable()) { // if force is true, ignore the completeable flag throw new FlowableIllegalArgumentException("Can only complete a stage plan item instance that is marked as completeable (there might still be active plan item instance)."); } CommandContextUtil.getAgenda(commandContext).planCompletePlanItemInstanceOperation(planItemInstanceEntity); }
protected PlanItemInstanceEntity createPlanItemInstanceDuplicateForRepetition(PlanItemInstanceEntity planItemInstanceEntity) { PlanItemInstanceEntity childPlanItemInstanceEntity = copyAndInsertPlanItemInstance(commandContext, planItemInstanceEntity, false); String oldState = childPlanItemInstanceEntity.getState(); String newState = PlanItemInstanceState.WAITING_FOR_REPETITION; childPlanItemInstanceEntity.setState(newState); PlanItemLifeCycleListenerUtil.callLifecycleListeners(commandContext, planItemInstanceEntity, oldState, newState); // createPlanItemInstance operations will also sync planItemInstance history CommandContextUtil.getAgenda(commandContext).planCreatePlanItemInstanceForRepetitionOperation(childPlanItemInstanceEntity); return childPlanItemInstanceEntity; }
@Override public void execute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { if (planItemInstanceEntity.getPlanItem().getName() != null) { Expression nameExpression = CommandContextUtil.getExpressionManager(commandContext).createExpression(planItemInstanceEntity.getPlanItem().getName()); planItemInstanceEntity.setName(nameExpression.getValue(planItemInstanceEntity).toString()); } CommandContextUtil.getAgenda(commandContext).planInitStageOperation(planItemInstanceEntity); }
@Override public void run() { super.run(); Stage stage = CaseDefinitionUtil.getCase(caseInstanceEntity.getCaseDefinitionId()).getPlanModel(); createPlanItemInstances(commandContext, stage.getPlanItems(), caseInstanceEntity.getCaseDefinitionId(), caseInstanceEntity.getId(), null, caseInstanceEntity.getTenantId()); CommandContextUtil.getAgenda(commandContext).planEvaluateCriteriaOperation(caseInstanceEntity.getId()); }