Class AbstractScoreHolder<Score_ extends Score<Score_>>

java.lang.Object
org.optaplanner.constraint.drl.holder.AbstractScoreHolder<Score_>
Type Parameters:
Score_ - the Score type
All Implemented Interfaces:
ScoreHolder<Score_>
Direct Known Subclasses:
BendableBigDecimalScoreHolderImpl, BendableLongScoreHolderImpl, BendableScoreHolderImpl, HardMediumSoftBigDecimalScoreHolderImpl, HardMediumSoftLongScoreHolderImpl, HardMediumSoftScoreHolderImpl, HardSoftBigDecimalScoreHolderImpl, HardSoftLongScoreHolderImpl, HardSoftScoreHolderImpl, SimpleBigDecimalScoreHolderImpl, SimpleLongScoreHolderImpl, SimpleScoreHolderImpl

public abstract class AbstractScoreHolder<Score_ extends Score<Score_>> extends Object implements ScoreHolder<Score_>
Abstract superclass for ScoreHolder. Instances of this class are used only in DRL.
  • Field Details

  • Constructor Details

    • AbstractScoreHolder

      protected AbstractScoreHolder(boolean constraintMatchEnabled)
  • Method Details

    • buildScoreHolder

      public static <Score_ extends Score<Score_>, ScoreHolder_ extends AbstractScoreHolder<Score_>> ScoreHolder_ buildScoreHolder(ScoreDefinition<Score_> scoreDefinition, boolean constraintMatchEnabled)
    • isConstraintMatchEnabled

      public boolean isConstraintMatchEnabled()
    • getConstraintMatchTotalMap

      public Map<String,ConstraintMatchTotal<Score_>> getConstraintMatchTotalMap()
    • getIndictmentMap

      public Map<Object,Indictment<Score_>> getIndictmentMap()
    • configureConstraintWeight

      public void configureConstraintWeight(org.kie.api.definition.rule.Rule rule, Score_ constraintWeight)
    • registerConstraintMatch

      protected void registerConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, Runnable constraintUndoListener, Supplier<Score_> scoreSupplier)
      Requires a custom rule event listener to be added as event listener on KieSession, otherwise the score changes caused by the constraint matches would not be undone. See DrlScoreDirector.setWorkingSolution(Object) for an example.
      Parameters:
      kcontext - The rule for which to register the match.
      constraintUndoListener - The operation to run to undo the match.
      scoreSupplier - The score change to be undone when constraint justification enabled.
    • impactScore

      public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext)
      For internal use only, use penalize() or reward() instead.
      Parameters:
      kcontext - never null
    • impactScore

      public abstract void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier)
      For internal use only, use penalize() or reward() instead.
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • impactScore

      public abstract void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)
      For internal use only, use penalize() or reward() instead.
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • impactScore

      public abstract void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier)
      For internal use only, use penalize() or reward() instead.
      Parameters:
      kcontext - never null
      weightMultiplier - any
    • extractScore

      public abstract Score_ extractScore(int initScore)
    • extractJustificationList

      protected List<Object> extractJustificationList(org.kie.api.runtime.rule.RuleContext kcontext)