Class HardMediumSoftLongScoreDefinition
- java.lang.Object
-
- org.optaplanner.core.impl.score.definition.AbstractScoreDefinition<HardMediumSoftLongScore>
-
- org.optaplanner.core.impl.score.buildin.hardmediumsoftlong.HardMediumSoftLongScoreDefinition
-
- All Implemented Interfaces:
ScoreDefinition<HardMediumSoftLongScore>
public class HardMediumSoftLongScoreDefinition extends AbstractScoreDefinition<HardMediumSoftLongScore>
-
-
Constructor Summary
Constructors Constructor Description HardMediumSoftLongScoreDefinition()
-
Method Summary
-
Methods inherited from class org.optaplanner.core.impl.score.definition.AbstractScoreDefinition
divide, divide, divide, divide, formatScore, getInitLabel, getLevelLabels, isCompatibleArithmeticArgument, sanitize, sanitize, sanitize, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.impl.score.definition.ScoreDefinition
isNegativeOrZero, isPositiveOrZero
-
-
-
-
Method Detail
-
getLevelsSize
public int getLevelsSize()
Description copied from interface:ScoreDefinitionReturns the length ofScore.toLevelNumbers()for everyScoreof this definition. For example: returns 2 onHardSoftScoreDefinition.- Specified by:
getLevelsSizein interfaceScoreDefinition<HardMediumSoftLongScore>- Overrides:
getLevelsSizein classAbstractScoreDefinition<HardMediumSoftLongScore>- Returns:
- at least 1
-
getFeasibleLevelsSize
public int getFeasibleLevelsSize()
Description copied from interface:ScoreDefinitionReturns the number of levels ofScore.toLevelNumbers(). that are used to determineScore.isFeasible().- Returns:
- at least 0, at most
ScoreDefinition.getLevelsSize()
-
getScoreClass
public Class<HardMediumSoftLongScore> getScoreClass()
Description copied from interface:ScoreDefinitionReturns theClassof the actualScoreimplementation. For example: returnsHardSoftScore.classonHardSoftScoreDefinition.- Returns:
- never null
-
getZeroScore
public HardMediumSoftLongScore getZeroScore()
Description copied from interface:ScoreDefinitionThe score that represents zero.- Returns:
- never null
-
getOneSoftestScore
public HardMediumSoftLongScore getOneSoftestScore()
Description copied from interface:ScoreDefinitionThe score that represents the softest possible one.- Returns:
- never null
-
parseScore
public HardMediumSoftLongScore parseScore(String scoreString)
Description copied from interface:ScoreDefinition- Parameters:
scoreString- never null- Returns:
- never null
- See Also:
ScoreDefinition.formatScore(Score),ScoreUtils.parseScore(Class, String)
-
fromLevelNumbers
public HardMediumSoftLongScore fromLevelNumbers(int initScore, Number[] levelNumbers)
Description copied from interface:ScoreDefinitionThe opposite ofScore.toLevelNumbers().- Parameters:
initScore-<= 0, managed by OptaPlanner, needed as a parameter in theScore's creation method, seeScore.getInitScore()levelNumbers- never null- Returns:
- never null
-
buildScoreInliner
public HardMediumSoftLongScoreInliner buildScoreInliner(Map<Constraint,HardMediumSoftLongScore> constraintToWeightMap, boolean constraintMatchEnabled)
Description copied from interface:ScoreDefinitionUsed byBavetConstraintFactoryandDroolsConstraintFactory.- Parameters:
constraintToWeightMap- never null, no zero-weight constraintsconstraintMatchEnabled- true ifInnerScoreDirector.isConstraintMatchEnabled()should be true- Returns:
- never null
-
buildScoreHolder
public HardMediumSoftLongScoreHolderImpl buildScoreHolder(boolean constraintMatchEnabled)
Description copied from interface:ScoreDefinitionUsed byDroolsScoreDirector.- Parameters:
constraintMatchEnabled- true ifInnerScoreDirector.isConstraintMatchEnabled()should be true- Returns:
- never null
-
buildOptimisticBound
public HardMediumSoftLongScore buildOptimisticBound(InitializingScoreTrend initializingScoreTrend, HardMediumSoftLongScore score)
Description copied from interface:ScoreDefinitionBuilds aScorewhich is equal or better than any otherScorewith more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend- never null, withInitializingScoreTrend.getLevelsSize()equal toScoreDefinition.getLevelsSize().score- never null, withScore.getInitScore()0.- Returns:
- never null
-
buildPessimisticBound
public HardMediumSoftLongScore buildPessimisticBound(InitializingScoreTrend initializingScoreTrend, HardMediumSoftLongScore score)
Description copied from interface:ScoreDefinitionBuilds aScorewhich is equal or worse than any otherScorewith more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend- never null, withInitializingScoreTrend.getLevelsSize()equal toScoreDefinition.getLevelsSize().score- never null, withScore.getInitScore()0- Returns:
- never null
-
divideBySanitizedDivisor
public HardMediumSoftLongScore divideBySanitizedDivisor(HardMediumSoftLongScore dividend, HardMediumSoftLongScore divisor)
Description copied from interface:ScoreDefinitionReturnScorewhose every level is the result of dividing the matching levels in this and the divisor. When rounding is needed, it is floored (as defined byMath.floor(double)).If any of the levels in the divisor are equal to zero, the method behaves as if they were equal to one instead.
divisor- value by which this Score is to be divided- Returns:
- this / divisor
-
-