Class HardSoftLongScoreHolderImpl

java.lang.Object
org.optaplanner.constraint.drl.holder.AbstractScoreHolder<HardSoftLongScore>
org.optaplanner.constraint.drl.holder.HardSoftLongScoreHolderImpl
All Implemented Interfaces:
HardSoftLongScoreHolder, ScoreHolder<HardSoftLongScore>

public final class HardSoftLongScoreHolderImpl extends AbstractScoreHolder<HardSoftLongScore> implements HardSoftLongScoreHolder
See Also:
  • Field Details

  • Constructor Details

    • HardSoftLongScoreHolderImpl

      public HardSoftLongScoreHolderImpl(boolean constraintMatchEnabled)
  • Method Details

    • getHardScore

      public long getHardScore()
    • getSoftScore

      public long getSoftScore()
    • configureConstraintWeight

      public void configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardSoftLongScore constraintWeight)
      Overrides:
      configureConstraintWeight in class AbstractScoreHolder<HardSoftLongScore>
    • penalize

      public void penalize(org.kie.api.runtime.rule.RuleContext kcontext)
      Description copied from interface: ScoreHolder
      Penalize a match by the ConstraintWeight negated.
      Specified by:
      penalize in interface ScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null, the magic variable in DRL
    • penalize

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

      public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, long hardWeightMultiplier, long softWeightMultiplier)
      Description copied from interface: HardSoftLongScoreHolder
      Penalize a match by the ConstraintWeight negated and multiplied with the specific weightMultiplier per score level. Slower than HardSoftLongScoreHolder.penalize(RuleContext, long).
      Specified by:
      penalize in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      hardWeightMultiplier - at least 0
      softWeightMultiplier - at least 0
    • reward

      public void reward(org.kie.api.runtime.rule.RuleContext kcontext)
      Description copied from interface: ScoreHolder
      Reward a match by the ConstraintWeight.
      Specified by:
      reward in interface ScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null, the magic variable in DRL
    • reward

      public void reward(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)
      Description copied from interface: HardSoftLongScoreHolder
      Reward a match by the ConstraintWeight multiplied with the weightMultiplier for all score levels.
      Specified by:
      reward in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      weightMultiplier - at least 0
    • reward

      public void reward(org.kie.api.runtime.rule.RuleContext kcontext, long hardWeightMultiplier, long softWeightMultiplier)
      Description copied from interface: HardSoftLongScoreHolder
      Reward a match by the ConstraintWeight multiplied with the specific weightMultiplier per score level. Slower than HardSoftLongScoreHolder.reward(RuleContext, long).
      Specified by:
      reward in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      hardWeightMultiplier - at least 0
      softWeightMultiplier - at least 0
    • impactScore

      public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext)
      Description copied from class: AbstractScoreHolder
      For internal use only, use penalize() or reward() instead.
      Overrides:
      impactScore in class AbstractScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null
    • impactScore

      public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier)
      Description copied from class: AbstractScoreHolder
      For internal use only, use penalize() or reward() instead.
      Specified by:
      impactScore in class AbstractScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • impactScore

      public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)
      Description copied from class: AbstractScoreHolder
      For internal use only, use penalize() or reward() instead.
      Specified by:
      impactScore in interface HardSoftLongScoreHolder
      Specified by:
      impactScore in class AbstractScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • impactScore

      public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier)
      Description copied from class: AbstractScoreHolder
      For internal use only, use penalize() or reward() instead.
      Specified by:
      impactScore in class AbstractScoreHolder<HardSoftLongScore>
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • addHardConstraintMatch

      public void addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, long hardWeight)
      Specified by:
      addHardConstraintMatch in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      hardWeight - higher is better, negative for a penalty, positive for a reward
    • addSoftConstraintMatch

      public void addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, long softWeight)
      Specified by:
      addSoftConstraintMatch in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      softWeight - higher is better, negative for a penalty, positive for a reward
    • addMultiConstraintMatch

      public void addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, long hardWeight, long softWeight)
      Specified by:
      addMultiConstraintMatch in interface HardSoftLongScoreHolder
      Parameters:
      kcontext - never null, the magic variable in DRL
      softWeight - higher is better, negative for a penalty, positive for a reward
    • extractScore

      public HardSoftLongScore extractScore(int initScore)
      Specified by:
      extractScore in class AbstractScoreHolder<HardSoftLongScore>