Interface BendableBigDecimalScoreHolder

    • Method Detail

      • getHardLevelsSize

        int getHardLevelsSize()
      • getSoftLevelsSize

        int getSoftLevelsSize()
      • penalize

        void penalize​(org.kie.api.runtime.rule.RuleContext kcontext,
                      BigDecimal weightMultiplier)
        Penalize a match by the ConstraintWeight negated and multiplied with the weightMultiplier for all score levels.
        Parameters:
        kcontext - never null, the magic variable in DRL
        weightMultiplier - at least 0
      • penalize

        void penalize​(org.kie.api.runtime.rule.RuleContext kcontext,
                      BigDecimal[] hardWeightsMultiplier,
                      BigDecimal[] softWeightsMultiplier)
        Penalize a match by the ConstraintWeight negated and multiplied with the specific weightMultiplier per score level. Slower than penalize(RuleContext, BigDecimal).
        Parameters:
        kcontext - never null, the magic variable in DRL
        hardWeightsMultiplier - elements at least 0
        softWeightsMultiplier - elements at least 0
      • reward

        void reward​(org.kie.api.runtime.rule.RuleContext kcontext,
                    BigDecimal weightMultiplier)
        Reward a match by the ConstraintWeight multiplied with the weightMultiplier for all score levels.
        Parameters:
        kcontext - never null, the magic variable in DRL
        weightMultiplier - at least 0
      • reward

        void reward​(org.kie.api.runtime.rule.RuleContext kcontext,
                    BigDecimal[] hardWeightsMultiplier,
                    BigDecimal[] softWeightsMultiplier)
        Reward a match by the ConstraintWeight multiplied with the specific weightMultiplier per score level. Slower than reward(RuleContext, BigDecimal).
        Parameters:
        kcontext - never null, the magic variable in DRL
        hardWeightsMultiplier - elements at least 0
        softWeightsMultiplier - elements at least 0
      • impactScore

        void impactScore​(org.kie.api.runtime.rule.RuleContext kcontext,
                         BigDecimal weightMultiplier)
      • addHardConstraintMatch

        void addHardConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                    int hardLevel,
                                    BigDecimal weight)
        Parameters:
        kcontext - never null, the magic variable in DRL
        hardLevel - 0 <= hardLevel < getHardLevelsSize(). The scoreLevel is hardLevel for hard levels and softLevel + hardLevelSize for soft levels.
        weight - never null, higher is better, negative for a penalty, positive for a reward
      • addSoftConstraintMatch

        void addSoftConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                    int softLevel,
                                    BigDecimal weight)
        Parameters:
        kcontext - never null, the magic variable in DRL
        softLevel - 0 <= softLevel < getSoftLevelsSize(). The scoreLevel is hardLevel for hard levels and softLevel + hardLevelSize for soft levels.
        weight - never null, higher is better, negative for a penalty, positive for a reward
      • addMultiConstraintMatch

        void addMultiConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                     BigDecimal[] hardWeights,
                                     BigDecimal[] softWeights)
        Parameters:
        kcontext - never null, the magic variable in DRL
        hardWeights - never null, array of length getHardLevelsSize(), does not contain any nulls
        softWeights - never null, array of length getSoftLevelsSize(), does not contain any nulls