Class AbstractEvaluationCriteriaOperation

    • Field Detail

      • evaluateStagesAndCaseInstanceCompletion

        protected boolean evaluateStagesAndCaseInstanceCompletion
        only the last evaluation planned on the agenda operation will have this true.
    • Method Detail

      • evaluateForActivation

        public void evaluateForActivation​(PlanItemInstanceEntity planItemInstanceEntity,
                                          PlanItemInstanceContainer planItemInstanceContainer,
                                          PlanItemEvaluationResult evaluationResult)
        Evaluates the given plan item for activation by looking at its entry criteria, repetition rule and whether the plan item is a special one like an event listener (they occur and will never actually be active).
        Parameters:
        planItemInstanceEntity - the plan item instance to evaluate
        planItemInstanceContainer - the parent container of the plan item instance
        evaluationResult - the object holding evaluation results, will be modified inside this method with gained information
      • evaluateForCompletion

        public boolean evaluateForCompletion​(PlanItemInstanceEntity planItemInstanceEntity,
                                             PlanItemEvaluationResult evaluationResult)
        Evaluates the given plan item for completion or termination by looking at its state and exit criteria. If it is a stage, it will evaluate its child plan items as well.
        Parameters:
        planItemInstanceEntity - the plan item instance to evaluate for completion or termination
        evaluationResult - the object holding evaluation results, will be modified inside this method with gained information
        Returns:
        true, if further evaluation should be skipped as the plan item can be ignored for further processing, false otherwise
      • evaluatePlanItemsCriteria

        protected boolean evaluatePlanItemsCriteria​(PlanItemInstanceContainer planItemInstanceContainer)
        Evaluates the entry/exit criteria for the given plan item instances and plans new operations when its criteria are satisfied.

        Returns true if any (part of a) sentry has fired (and didn't fire before) or if any of the passed plan items are still active.

        Returns false if no sentry changes happened and none of the passed plan item instances are active. This means that the parent of these plan item instances also now can change its state.

      • evaluateDependentPlanItems

        protected void evaluateDependentPlanItems()
      • isStageCompletable

        protected boolean isStageCompletable​(PlanItemInstanceEntity stagePlanItemInstanceEntity,
                                             org.flowable.cmmn.model.Stage stage)
      • evaluatePlanModelComplete

        protected boolean evaluatePlanModelComplete()
      • evaluatePlanItemsWithAvailableCondition

        protected boolean evaluatePlanItemsWithAvailableCondition​(PlanItemInstanceContainer planItemInstanceContainer)
      • evaluateEntryCriteria

        protected org.flowable.cmmn.model.Criterion evaluateEntryCriteria​(PlanItemInstanceEntity planItemInstanceEntity,
                                                                          org.flowable.cmmn.model.PlanItem planItem)
      • evaluateExitCriteria

        protected org.flowable.cmmn.model.Criterion evaluateExitCriteria​(EntityWithSentryPartInstances entityWithSentryPartInstances,
                                                                         org.flowable.cmmn.model.HasExitCriteria hasExitCriteria)
      • evaluateCriteria

        protected org.flowable.cmmn.model.Criterion evaluateCriteria​(EntityWithSentryPartInstances entityWithSentryPartInstances,
                                                                     List<org.flowable.cmmn.model.Criterion> criteria)
        Returns:
        Returns the criterion that is satisfied. If none is satisfied, null is returned.
      • allOnPartsSatisfied

        protected boolean allOnPartsSatisfied​(Set<String> satisfiedSentryOnPartIds,
                                              List<org.flowable.cmmn.model.SentryOnPart> sentryOnParts)
        Evaluate, if the sentries on-parts are all satisfied.
        Parameters:
        satisfiedSentryOnPartIds - the set of satisfied sentry on parts, which might also contain on-parts from other sentries on the same plan item.
        sentryOnParts - the list of on-parts of the currently evaluated sentry
        Returns:
        true, if all on parts of the sentry are satisfied, false otherwise
      • sentryOnPartMatchesCurrentLifeCycleEvent

        public boolean sentryOnPartMatchesCurrentLifeCycleEvent​(EntityWithSentryPartInstances entityWithSentryPartInstances,
                                                                org.flowable.cmmn.model.SentryOnPart sentryOnPart)
      • hasSameParentInModel

        protected boolean hasSameParentInModel​(EntityWithSentryPartInstances entityWithSentryPartInstances,
                                               org.flowable.cmmn.model.SentryOnPart sentryOnPart)
      • createSentryPartInstanceEntity

        protected SentryPartInstanceEntity createSentryPartInstanceEntity​(EntityWithSentryPartInstances entityWithSentryPartInstances,
                                                                          org.flowable.cmmn.model.Sentry sentry,
                                                                          org.flowable.cmmn.model.SentryOnPart sentryOnPart,
                                                                          org.flowable.cmmn.model.SentryIfPart sentryIfPart)
      • evaluateDependentPlanItemEntryCriteria

        protected org.flowable.cmmn.model.Criterion evaluateDependentPlanItemEntryCriteria​(org.flowable.cmmn.model.PlanItem entryDependentPlanItem)
      • planItemsShareDirectParentStage

        protected boolean planItemsShareDirectParentStage​(org.flowable.cmmn.model.PlanItem planItemOne,
                                                          org.flowable.cmmn.model.PlanItem planItemTwo)
      • setPlanItemLifeCycleEvent

        public void setPlanItemLifeCycleEvent​(PlanItemLifeCycleEvent planItemLifeCycleEvent)
      • isEvaluateCaseInstanceCompleted

        public boolean isEvaluateCaseInstanceCompleted()
      • setEvaluateStagesAndCaseInstanceCompletion

        public void setEvaluateStagesAndCaseInstanceCompletion​(boolean evaluateStagesAndCaseInstanceCompletion)