Class AbstractScoreHolder<Score_ extends Score<Score_>>
- java.lang.Object
-
- org.optaplanner.constraint.drl.holder.AbstractScoreHolder<Score_>
-
- Type Parameters:
Score_- theScoretype
- 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 forScoreHolder. Instances of this class are used only in DRL.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceAbstractScoreHolder.BigDecimalMatchExecutorclassAbstractScoreHolder.ConstraintActivationUnMatchListenerprotected static interfaceAbstractScoreHolder.IntMatchExecutorprotected static interfaceAbstractScoreHolder.LongMatchExecutorprotected static interfaceAbstractScoreHolder.ScoreMatchExecutor<Score_ extends AbstractScore<Score_>>UnlikeAbstractScoreHolder.IntMatchExecutorand its counterparts, this is not being used on CS-D code paths.
-
Field Summary
Fields Modifier and Type Field Description protected booleanconstraintMatchEnabledprotected Map<String,ConstraintMatchTotal<Score_>>constraintMatchTotalMapprotected Map<Object,Indictment<Score_>>indictmentMap
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractScoreHolder(boolean constraintMatchEnabled)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static <Score_ extends Score<Score_>,ScoreHolder_ extends AbstractScoreHolder<Score_>>
ScoreHolder_buildScoreHolder(ScoreDefinition<Score_> scoreDefinition, boolean constraintMatchEnabled)voidconfigureConstraintWeight(org.kie.api.definition.rule.Rule rule, Score_ constraintWeight)protected List<Object>extractJustificationList(org.kie.api.runtime.rule.RuleContext kcontext)abstract Score_extractScore(int initScore)Map<String,ConstraintMatchTotal<Score_>>getConstraintMatchTotalMap()Map<Object,Indictment<Score_>>getIndictmentMap()voidimpactScore(org.kie.api.runtime.rule.RuleContext kcontext)For internal use only, use penalize() or reward() instead.abstract voidimpactScore(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier)For internal use only, use penalize() or reward() instead.abstract voidimpactScore(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)For internal use only, use penalize() or reward() instead.abstract voidimpactScore(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier)For internal use only, use penalize() or reward() instead.booleanisConstraintMatchEnabled()protected voidregisterConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, Runnable constraintUndoListener, Supplier<Score_> scoreSupplier)Requires a custom rule event listener to be added as event listener onKieSession, otherwise the score changes caused by the constraint matches would not be undone.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.api.score.holder.ScoreHolder
penalize, reward
-
-
-
-
Method Detail
-
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 onKieSession, otherwise the score changes caused by the constraint matches would not be undone. SeeDrlScoreDirector.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 nullweightMultiplier- 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 nullweightMultiplier- 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 nullweightMultiplier- any
-
extractScore
public abstract Score_ extractScore(int initScore)
-
-