Class BendableBigDecimalScoreDefinition
java.lang.Object
org.optaplanner.core.impl.score.definition.AbstractScoreDefinition<Score_>
org.optaplanner.core.impl.score.definition.AbstractBendableScoreDefinition<BendableBigDecimalScore>
org.optaplanner.core.impl.score.buildin.BendableBigDecimalScoreDefinition
- All Implemented Interfaces:
ScoreDefinition<BendableBigDecimalScore>
public class BendableBigDecimalScoreDefinition
extends AbstractBendableScoreDefinition<BendableBigDecimalScore>
-
Field Summary
Fields inherited from class org.optaplanner.core.impl.score.definition.AbstractBendableScoreDefinition
hardLevelsSize, softLevelsSize
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuildOptimisticBound
(InitializingScoreTrend initializingScoreTrend, BendableBigDecimalScore score) buildPessimisticBound
(InitializingScoreTrend initializingScoreTrend, BendableBigDecimalScore score) createScore
(BigDecimal... scores) createScoreUninitialized
(int initScore, BigDecimal... scores) divideBySanitizedDivisor
(BendableBigDecimalScore dividend, BendableBigDecimalScore divisor) ReturnScore
whose every level is the result of dividing the matching levels in this and the divisor.fromLevelNumbers
(int initScore, Number[] levelNumbers) The opposite ofScore.toLevelNumbers()
.Class<?>
Return the type of number that the score implementation operates on.final BendableBigDecimalScore
The score that represents the softest possible one.The score that represents zero.parseScore
(String scoreString) Methods inherited from class org.optaplanner.core.impl.score.definition.AbstractBendableScoreDefinition
generateLevelLabels, getFeasibleLevelsSize, getHardLevelsSize, getLevelsSize, getSoftLevelsSize, isCompatibleArithmeticArgument
Methods inherited from class org.optaplanner.core.impl.score.definition.AbstractScoreDefinition
divide, divide, divide, divide, formatScore, getInitLabel, getLevelLabels, 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
formatScore, getInitLabel, getLevelLabels, isNegativeOrZero, isPositiveOrZero
-
Constructor Details
-
BendableBigDecimalScoreDefinition
public BendableBigDecimalScoreDefinition(int hardLevelsSize, int softLevelsSize)
-
-
Method Details
-
getScoreClass
Description copied from interface:ScoreDefinition
Returns theClass
of the actualScore
implementation. For example: returnsHardSoftScore.class
onHardSoftScoreDefinition
.- Returns:
- never null
-
getZeroScore
Description copied from interface:ScoreDefinition
The score that represents zero.- Returns:
- never null
-
getOneSoftestScore
Description copied from interface:ScoreDefinition
The score that represents the softest possible one.- Returns:
- never null
-
parseScore
Description copied from interface:ScoreDefinition
- Parameters:
scoreString
- never null- Returns:
- never null
- See Also:
-
fromLevelNumbers
Description copied from interface:ScoreDefinition
The opposite ofScore.toLevelNumbers()
.- Parameters:
initScore
-<= 0
, managed by OptaPlanner, needed as a parameter in theScore
's creation method, seeScore.initScore()
levelNumbers
- never null- Returns:
- never null
-
createScore
-
createScoreUninitialized
-
buildOptimisticBound
public BendableBigDecimalScore buildOptimisticBound(InitializingScoreTrend initializingScoreTrend, BendableBigDecimalScore score) Description copied from interface:ScoreDefinition
Builds aScore
which is equal or better than any otherScore
with more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend
- never null, withInitializingScoreTrend.getLevelsSize()
equal toScoreDefinition.getLevelsSize()
.score
- never null, withScore.initScore()
0
.- Returns:
- never null
-
buildPessimisticBound
public BendableBigDecimalScore buildPessimisticBound(InitializingScoreTrend initializingScoreTrend, BendableBigDecimalScore score) Description copied from interface:ScoreDefinition
Builds aScore
which is equal or worse than any otherScore
with more variables initialized (while the already variables don't change).- Parameters:
initializingScoreTrend
- never null, withInitializingScoreTrend.getLevelsSize()
equal toScoreDefinition.getLevelsSize()
.score
- never null, withScore.initScore()
0
- Returns:
- never null
-
divideBySanitizedDivisor
public BendableBigDecimalScore divideBySanitizedDivisor(BendableBigDecimalScore dividend, BendableBigDecimalScore divisor) Description copied from interface:ScoreDefinition
ReturnScore
whose 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
-
getNumericType
Description copied from interface:ScoreDefinition
Return the type of number that the score implementation operates on. Examples:- int.class for
SimpleScore
- BigDecimal.class for
SimpleBigDecimalScore
- Returns:
- never null
- int.class for
-