Class AbstractScoreHolder<Score_ extends Score<Score_>>
java.lang.Object
org.optaplanner.constraint.drl.holder.AbstractScoreHolder<Score_>
- Type Parameters:
Score_
- theScore
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.-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static interface
class
protected static interface
protected static interface
protected static interface
UnlikeAbstractScoreHolder.IntMatchExecutor
and its counterparts, this is not being used on CS-D code paths. -
Field Summary
Modifier and TypeFieldDescriptionprotected final boolean
protected final Map<String,
ConstraintMatchTotal<Score_>> protected final Map<Object,
Indictment<Score_>> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic <Score_ extends Score<Score_>,
ScoreHolder_ extends AbstractScoreHolder<Score_>>
ScoreHolder_buildScoreHolder
(ScoreDefinition<Score_> scoreDefinition, boolean constraintMatchEnabled) void
configureConstraintWeight
(org.kie.api.definition.rule.Rule rule, Score_ constraintWeight) extractJustificationList
(org.kie.api.runtime.rule.RuleContext kcontext) abstract Score_
extractScore
(int initScore) void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext) For internal use only, use penalize() or reward() instead.abstract void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier) For internal use only, use penalize() or reward() instead.abstract void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier) For internal use only, use penalize() or reward() instead.abstract void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier) For internal use only, use penalize() or reward() instead.boolean
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.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
-
Field Details
-
constraintMatchEnabled
protected final boolean constraintMatchEnabled -
constraintMatchTotalMap
-
indictmentMap
-
-
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
-
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
-
extractJustificationList
-