Class AbstractScoreHolder<Score_ extends org.optaplanner.core.api.score.Score<Score_>>
- java.lang.Object
-
- org.optaplanner.constraint.drl.holder.AbstractScoreHolder<Score_>
-
- Type Parameters:
Score_- theScoretype
- All Implemented Interfaces:
org.optaplanner.core.api.score.holder.ScoreHolder<Score_>
- Direct Known Subclasses:
BendableBigDecimalScoreHolderImpl,BendableLongScoreHolderImpl,BendableScoreHolderImpl,HardMediumSoftBigDecimalScoreHolderImpl,HardMediumSoftLongScoreHolderImpl,HardMediumSoftScoreHolderImpl,HardSoftBigDecimalScoreHolderImpl,HardSoftLongScoreHolderImpl,HardSoftScoreHolderImpl,SimpleBigDecimalScoreHolderImpl,SimpleLongScoreHolderImpl,SimpleScoreHolderImpl
public abstract class AbstractScoreHolder<Score_ extends org.optaplanner.core.api.score.Score<Score_>> extends Object implements org.optaplanner.core.api.score.holder.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 org.optaplanner.core.api.score.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,org.optaplanner.core.api.score.constraint.ConstraintMatchTotal<Score_>>constraintMatchTotalMapprotected Map<Object,org.optaplanner.core.api.score.constraint.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 org.optaplanner.core.api.score.Score<Score_>,ScoreHolder_ extends AbstractScoreHolder<Score_>>
ScoreHolder_buildScoreHolder(org.optaplanner.core.impl.score.definition.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,org.optaplanner.core.api.score.constraint.ConstraintMatchTotal<Score_>>getConstraintMatchTotalMap()Map<Object,org.optaplanner.core.api.score.constraint.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.
-
-
-
Method Detail
-
buildScoreHolder
public static <Score_ extends org.optaplanner.core.api.score.Score<Score_>,ScoreHolder_ extends AbstractScoreHolder<Score_>> ScoreHolder_ buildScoreHolder(org.optaplanner.core.impl.score.definition.ScoreDefinition<Score_> scoreDefinition, boolean constraintMatchEnabled)
-
isConstraintMatchEnabled
public boolean isConstraintMatchEnabled()
-
getConstraintMatchTotalMap
public Map<String,org.optaplanner.core.api.score.constraint.ConstraintMatchTotal<Score_>> getConstraintMatchTotalMap()
-
getIndictmentMap
public Map<Object,org.optaplanner.core.api.score.constraint.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)
-
-