protected void executeTrigger() { Object behaviorObject = planItemInstanceEntity.getPlanItem().getBehavior(); if (!(behaviorObject instanceof CmmnTriggerableActivityBehavior)) { throw new FlowableException("Cannot trigger a plan item which activity behavior does not implement the " + CmmnTriggerableActivityBehavior.class + " interface"); } CmmnTriggerableActivityBehavior behavior = (CmmnTriggerableActivityBehavior) planItemInstanceEntity.getPlanItem().getBehavior(); if (behavior instanceof CoreCmmnTriggerableActivityBehavior) { ((CoreCmmnTriggerableActivityBehavior) behavior).trigger(commandContext, planItemInstanceEntity); } else { behavior.trigger(planItemInstanceEntity); } }
protected void executeActivityBehavior() { CmmnActivityBehavior activityBehavior = (CmmnActivityBehavior) planItemInstanceEntity.getPlanItem().getBehavior(); if (activityBehavior instanceof CoreCmmnActivityBehavior) { ((CoreCmmnActivityBehavior) activityBehavior).execute(commandContext, planItemInstanceEntity); } else { activityBehavior.execute(planItemInstanceEntity); } }
@Override public void run() { if (planItemInstanceEntity.getPlanItem() != null) { // can be null for the plan model Object behavior = planItemInstanceEntity.getPlanItem().getBehavior(); if (behavior instanceof PlanItemActivityBehavior && StateTransition.isPossible(planItemInstanceEntity, getLifeCycleTransition())) { ((PlanItemActivityBehavior) behavior).onStateTransition(commandContext, planItemInstanceEntity, getLifeCycleTransition()); } } String oldState = planItemInstanceEntity.getState(); String newState = getNewState(); planItemInstanceEntity.setState(newState); PlanItemLifeCycleListenerUtil.callLifecycleListeners(commandContext, planItemInstanceEntity, oldState, getNewState()); CommandContextUtil.getAgenda(commandContext).planEvaluateCriteriaOperation(planItemInstanceEntity.getCaseInstanceId(), createPlanItemLifeCycleEvent()); internalExecute(); }