Class HardMediumSoftBigDecimalScoreHolderImpl
java.lang.Object
org.optaplanner.constraint.drl.holder.AbstractScoreHolder<HardMediumSoftBigDecimalScore>
org.optaplanner.constraint.drl.holder.HardMediumSoftBigDecimalScoreHolderImpl
- All Implemented Interfaces:
HardMediumSoftBigDecimalScoreHolder
,ScoreHolder<HardMediumSoftBigDecimalScore>
public final class HardMediumSoftBigDecimalScoreHolderImpl
extends AbstractScoreHolder<HardMediumSoftBigDecimalScore>
implements HardMediumSoftBigDecimalScoreHolder
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.optaplanner.constraint.drl.holder.AbstractScoreHolder
AbstractScoreHolder.BigDecimalMatchExecutor, AbstractScoreHolder.ConstraintActivationUnMatchListener, AbstractScoreHolder.IntMatchExecutor, AbstractScoreHolder.LongMatchExecutor, AbstractScoreHolder.ScoreMatchExecutor<Score_ extends Score<Score_>>
-
Field Summary
Modifier and TypeFieldDescriptionprotected BigDecimal
protected final Map<org.kie.api.definition.rule.Rule,
AbstractScoreHolder.BigDecimalMatchExecutor> protected final Map<org.kie.api.definition.rule.Rule,
AbstractScoreHolder.ScoreMatchExecutor<HardMediumSoftBigDecimalScore>> Slower thanmatchExecutorByNumberMap
protected BigDecimal
protected BigDecimal
Fields inherited from class org.optaplanner.constraint.drl.holder.AbstractScoreHolder
constraintMatchEnabled, constraintMatchTotalMap, indictmentMap
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addHardConstraintMatch
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight) Add a hard constraint of specified weighting.void
addMediumConstraintMatch
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal mediumWeight) Add a medium level constraint of specified weighting.void
addMultiConstraintMatch
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight, BigDecimal mediumWeight, BigDecimal softWeight) void
addSoftConstraintMatch
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal softWeight) Add a soft constraint match of specified weighting.void
configureConstraintWeight
(org.kie.api.definition.rule.Rule rule, HardMediumSoftBigDecimalScore constraintWeight) extractScore
(int initScore) void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext) For internal use only, use penalize() or reward() instead.void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier) For internal use only, use penalize() or reward() instead.void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier) For internal use only, use penalize() or reward() instead.void
impactScore
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier) For internal use only, use penalize() or reward() instead.void
penalize
(org.kie.api.runtime.rule.RuleContext kcontext) Penalize a match by theConstraintWeight
negated.void
penalize
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier) Penalize a match by theConstraintWeight
negated and multiplied with the weightMultiplier for all score levels.void
penalize
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier) Penalize a match by theConstraintWeight
negated and multiplied with the specific weightMultiplier per score level.void
reward
(org.kie.api.runtime.rule.RuleContext kcontext) Reward a match by theConstraintWeight
.void
reward
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier) Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.void
reward
(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier) Reward a match by theConstraintWeight
multiplied with the specific weightMultiplier per score level.Methods inherited from class org.optaplanner.constraint.drl.holder.AbstractScoreHolder
buildScoreHolder, extractJustificationList, getConstraintMatchTotalMap, getIndictmentMap, isConstraintMatchEnabled, registerConstraintMatch
-
Field Details
-
matchExecutorByNumberMap
protected final Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.BigDecimalMatchExecutor> matchExecutorByNumberMap -
matchExecutorByScoreMap
protected final Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.ScoreMatchExecutor<HardMediumSoftBigDecimalScore>> matchExecutorByScoreMapSlower thanmatchExecutorByNumberMap
-
hardScore
-
mediumScore
-
softScore
-
-
Constructor Details
-
HardMediumSoftBigDecimalScoreHolderImpl
public HardMediumSoftBigDecimalScoreHolderImpl(boolean constraintMatchEnabled)
-
-
Method Details
-
getHardScore
-
getMediumScore
-
getSoftScore
-
configureConstraintWeight
public void configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardMediumSoftBigDecimalScore constraintWeight) - Overrides:
configureConstraintWeight
in classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext) Description copied from interface:ScoreHolder
Penalize a match by theConstraintWeight
negated.- Specified by:
penalize
in interfaceScoreHolder<HardMediumSoftBigDecimalScore>
- Parameters:
kcontext
- never null, the magic variable in DRL
-
penalize
Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Penalize a match by theConstraintWeight
negated and multiplied with the weightMultiplier for all score levels.- Specified by:
penalize
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier) Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Penalize a match by theConstraintWeight
negated and multiplied with the specific weightMultiplier per score level. Slower thanHardMediumSoftBigDecimalScoreHolder.penalize(RuleContext, BigDecimal)
.- Specified by:
penalize
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeightMultiplier
- at least 0mediumWeightMultiplier
- at least 0softWeightMultiplier
- at least 0
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext) Description copied from interface:ScoreHolder
Reward a match by theConstraintWeight
.- Specified by:
reward
in interfaceScoreHolder<HardMediumSoftBigDecimalScore>
- Parameters:
kcontext
- never null, the magic variable in DRL
-
reward
Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.- Specified by:
reward
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier) Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Reward a match by theConstraintWeight
multiplied with the specific weightMultiplier per score level. Slower thanHardMediumSoftBigDecimalScoreHolder.reward(RuleContext, BigDecimal)
.- Specified by:
reward
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeightMultiplier
- at least 0mediumWeightMultiplier
- at least 0softWeightMultiplier
- 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 classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
- 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 classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
- Parameters:
kcontext
- never nullweightMultiplier
- 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 classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
- Parameters:
kcontext
- never nullweightMultiplier
- any
-
impactScore
Description copied from class:AbstractScoreHolder
For internal use only, use penalize() or reward() instead.- Specified by:
impactScore
in interfaceHardMediumSoftBigDecimalScoreHolder
- Specified by:
impactScore
in classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
- Parameters:
kcontext
- never nullweightMultiplier
- any
-
addHardConstraintMatch
public void addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight) Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Add a hard constraint of specified weighting. This is typically used in Drools scoring to add a hard constraint match (negative value to indicate an infeasible solution).- Specified by:
addHardConstraintMatch
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- never null, higher is better, negative for a penalty, positive for a reward
-
addMediumConstraintMatch
public void addMediumConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal mediumWeight) Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Add a medium level constraint of specified weighting. This is typically used in Drools scoring to add a medium priority constraint match.- Specified by:
addMediumConstraintMatch
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLmediumWeight
- never null, higher is better, negative for a penalty, positive for a reward
-
addSoftConstraintMatch
public void addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal softWeight) Description copied from interface:HardMediumSoftBigDecimalScoreHolder
Add a soft constraint match of specified weighting. This is typically used in Drools scoring to add a low priority constraint match.- Specified by:
addSoftConstraintMatch
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLsoftWeight
- never null, higher is better, negative for a penalty, positive for a reward
-
addMultiConstraintMatch
public void addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight, BigDecimal mediumWeight, BigDecimal softWeight) - Specified by:
addMultiConstraintMatch
in interfaceHardMediumSoftBigDecimalScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- never null, higher is better, negative for a penalty, positive for a rewardmediumWeight
- never null, higher is better, negative for a penalty, positive for a rewardsoftWeight
- never null, higher is better, negative for a penalty, positive for a reward
-
extractScore
- Specified by:
extractScore
in classAbstractScoreHolder<HardMediumSoftBigDecimalScore>
-