Class AbstractScoreDefinition<Score_ extends Score<Score_>>
java.lang.Object
org.optaplanner.core.impl.score.definition.AbstractScoreDefinition<Score_>
- All Implemented Interfaces:
ScoreDefinition<Score_>
- Direct Known Subclasses:
AbstractBendableScoreDefinition
,HardMediumSoftBigDecimalScoreDefinition
,HardMediumSoftLongScoreDefinition
,HardMediumSoftScoreDefinition
,HardSoftBigDecimalScoreDefinition
,HardSoftLongScoreDefinition
,HardSoftScoreDefinition
,SimpleBigDecimalScoreDefinition
,SimpleLongScoreDefinition
,SimpleScoreDefinition
public abstract class AbstractScoreDefinition<Score_ extends Score<Score_>>
extends Object
implements ScoreDefinition<Score_>
Abstract superclass for
ScoreDefinition
.- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected static double
divide
(double dividend, double divisor) protected static int
divide
(int dividend, int divisor) protected static long
divide
(long dividend, long divisor) protected static BigDecimal
divide
(BigDecimal dividend, BigDecimal divisor) formatScore
(Score_ score) Returns the label forScore.initScore()
.String[]
Returns a label for each score level.int
Returns the length ofScore.toLevelNumbers()
for everyScore
of this definition.boolean
protected static int
sanitize
(int number) protected static long
sanitize
(long number) protected static BigDecimal
sanitize
(BigDecimal number) 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
buildOptimisticBound, buildPessimisticBound, divideBySanitizedDivisor, fromLevelNumbers, getFeasibleLevelsSize, getNumericType, getOneSoftestScore, getScoreClass, getZeroScore, isNegativeOrZero, isPositiveOrZero, parseScore
-
Constructor Details
-
AbstractScoreDefinition
- Parameters:
levelLabels
- never null, as defined byScoreDefinition.getLevelLabels()
-
-
Method Details
-
sanitize
protected static int sanitize(int number) -
sanitize
protected static long sanitize(long number) -
sanitize
-
divide
protected static int divide(int dividend, int divisor) -
divide
protected static long divide(long dividend, long divisor) -
divide
protected static double divide(double dividend, double divisor) -
divide
-
getInitLabel
Description copied from interface:ScoreDefinition
Returns the label forScore.initScore()
.- Specified by:
getInitLabel
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Returns:
- never null
- See Also:
-
getLevelsSize
public int getLevelsSize()Description copied from interface:ScoreDefinition
Returns the length ofScore.toLevelNumbers()
for everyScore
of this definition. For example: returns 2 onHardSoftScoreDefinition
.- Specified by:
getLevelsSize
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Returns:
- at least 1
-
getLevelLabels
Description copied from interface:ScoreDefinition
Returns a label for each score level. Each label includes the suffix "score" and must start in lower case. For example: returns{"hard score", "soft score "}
onHardSoftScoreDefinition
.It does not include the
ScoreDefinition.getInitLabel()
.- Specified by:
getLevelLabels
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Returns:
- never null, array with length of
ScoreDefinition.getLevelsSize()
, each element is never null
-
formatScore
Description copied from interface:ScoreDefinition
- Specified by:
formatScore
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Parameters:
score
- never null- Returns:
- never null
- See Also:
-
isCompatibleArithmeticArgument
- Specified by:
isCompatibleArithmeticArgument
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Parameters:
score
- never null- Returns:
- true if the otherScore is accepted as a parameter of
Score.add(Score)
,Score.subtract(Score)
andComparable.compareTo(Object)
for scores of this score definition.
-
toString
-