Class HardMediumSoftScoreHolderImpl
- java.lang.Object
-
- org.optaplanner.constraint.drl.holder.AbstractScoreHolder<HardMediumSoftScore>
-
- org.optaplanner.constraint.drl.holder.HardMediumSoftScoreHolderImpl
-
- All Implemented Interfaces:
HardMediumSoftScoreHolder
,ScoreHolder<HardMediumSoftScore>
public final class HardMediumSoftScoreHolderImpl extends AbstractScoreHolder<HardMediumSoftScore> implements HardMediumSoftScoreHolder
- See Also:
HardMediumSoftScore
-
-
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 AbstractScore<Score_>>
-
-
Field Summary
Fields Modifier and Type Field Description protected int
hardScore
protected Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.IntMatchExecutor>
matchExecutorByNumberMap
protected Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.ScoreMatchExecutor<HardMediumSoftScore>>
matchExecutorByScoreMap
Slower thanmatchExecutorByNumberMap
protected int
mediumScore
protected int
softScore
-
Fields inherited from class org.optaplanner.constraint.drl.holder.AbstractScoreHolder
constraintMatchEnabled, constraintMatchTotalMap, indictmentMap
-
-
Constructor Summary
Constructors Constructor Description HardMediumSoftScoreHolderImpl(boolean constraintMatchEnabled)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeight)
void
addMediumConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int mediumWeight)
void
addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeight, int mediumWeight, int softWeight)
void
addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int softWeight)
void
configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardMediumSoftScore constraintWeight)
HardMediumSoftScore
extractScore(int initScore)
int
getHardScore()
int
getMediumScore()
int
getSoftScore()
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, int 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, int hardWeightMultiplier, int mediumWeightMultiplier, int 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, int weightMultiplier)
Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.void
reward(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeightMultiplier, int mediumWeightMultiplier, int 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 Detail
-
matchExecutorByNumberMap
protected final Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.IntMatchExecutor> matchExecutorByNumberMap
-
matchExecutorByScoreMap
protected final Map<org.kie.api.definition.rule.Rule,AbstractScoreHolder.ScoreMatchExecutor<HardMediumSoftScore>> matchExecutorByScoreMap
Slower thanmatchExecutorByNumberMap
-
hardScore
protected int hardScore
-
mediumScore
protected int mediumScore
-
softScore
protected int softScore
-
-
Method Detail
-
getHardScore
public int getHardScore()
-
getMediumScore
public int getMediumScore()
-
getSoftScore
public int getSoftScore()
-
configureConstraintWeight
public void configureConstraintWeight(org.kie.api.definition.rule.Rule rule, HardMediumSoftScore constraintWeight)
- Overrides:
configureConstraintWeight
in classAbstractScoreHolder<HardMediumSoftScore>
-
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<HardMediumSoftScore>
- Parameters:
kcontext
- never null, the magic variable in DRL
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier)
Description copied from interface:HardMediumSoftScoreHolder
Penalize a match by theConstraintWeight
negated and multiplied with the weightMultiplier for all score levels.- Specified by:
penalize
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
penalize
public void penalize(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeightMultiplier, int mediumWeightMultiplier, int softWeightMultiplier)
Description copied from interface:HardMediumSoftScoreHolder
Penalize a match by theConstraintWeight
negated and multiplied with the specific weightMultiplier per score level. Slower thanHardMediumSoftScoreHolder.penalize(RuleContext, int)
.- Specified by:
penalize
in interfaceHardMediumSoftScoreHolder
- 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<HardMediumSoftScore>
- Parameters:
kcontext
- never null, the magic variable in DRL
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext, int weightMultiplier)
Description copied from interface:HardMediumSoftScoreHolder
Reward a match by theConstraintWeight
multiplied with the weightMultiplier for all score levels.- Specified by:
reward
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLweightMultiplier
- at least 0
-
reward
public void reward(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeightMultiplier, int mediumWeightMultiplier, int softWeightMultiplier)
Description copied from interface:HardMediumSoftScoreHolder
Reward a match by theConstraintWeight
multiplied with the specific weightMultiplier per score level. Slower thanHardMediumSoftScoreHolder.reward(RuleContext, int)
.- Specified by:
reward
in interfaceHardMediumSoftScoreHolder
- 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<HardMediumSoftScore>
- 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 interfaceHardMediumSoftScoreHolder
- Specified by:
impactScore
in classAbstractScoreHolder<HardMediumSoftScore>
- 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<HardMediumSoftScore>
- Parameters:
kcontext
- never nullweightMultiplier
- any
-
impactScore
public void impactScore(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier)
Description copied from class:AbstractScoreHolder
For internal use only, use penalize() or reward() instead.- Specified by:
impactScore
in classAbstractScoreHolder<HardMediumSoftScore>
- Parameters:
kcontext
- never nullweightMultiplier
- any
-
addHardConstraintMatch
public void addHardConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeight)
- Specified by:
addHardConstraintMatch
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- higher is better, negative for a penalty, positive for a reward
-
addMediumConstraintMatch
public void addMediumConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int mediumWeight)
- Specified by:
addMediumConstraintMatch
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLmediumWeight
- higher is better, negative for a penalty, positive for a reward
-
addSoftConstraintMatch
public void addSoftConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int softWeight)
- Specified by:
addSoftConstraintMatch
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLsoftWeight
- higher is better, negative for a penalty, positive for a reward
-
addMultiConstraintMatch
public void addMultiConstraintMatch(org.kie.api.runtime.rule.RuleContext kcontext, int hardWeight, int mediumWeight, int softWeight)
- Specified by:
addMultiConstraintMatch
in interfaceHardMediumSoftScoreHolder
- Parameters:
kcontext
- never null, the magic variable in DRLhardWeight
- higher is better, negative for a penalty, positive for a rewardmediumWeight
- higher is better, negative for a penalty, positive for a rewardsoftWeight
- higher is better, negative for a penalty, positive for a reward
-
extractScore
public HardMediumSoftScore extractScore(int initScore)
- Specified by:
extractScore
in classAbstractScoreHolder<HardMediumSoftScore>
-
-