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 forScoreDefinition
.- See Also:
ScoreDefinition
,HardSoftScoreDefinition
-
-
Constructor Summary
Constructors Constructor Description AbstractScoreDefinition(String[] levelLabels)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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)
String
formatScore(Score_ score)
String
getInitLabel()
Returns the label forScore.getInitScore()
.String[]
getLevelLabels()
Returns a label for each score level.int
getLevelsSize()
Returns the length ofScore.toLevelNumbers()
for everyScore
of this definition.boolean
isCompatibleArithmeticArgument(Score score)
protected static int
sanitize(int number)
protected static long
sanitize(long number)
protected static BigDecimal
sanitize(BigDecimal number)
String
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, getOneSoftestScore, getScoreClass, getZeroScore, isNegativeOrZero, isPositiveOrZero, parseScore
-
-
-
-
Constructor Detail
-
AbstractScoreDefinition
public AbstractScoreDefinition(String[] levelLabels)
- Parameters:
levelLabels
- never null, as defined byScoreDefinition.getLevelLabels()
-
-
Method Detail
-
sanitize
protected static int sanitize(int number)
-
sanitize
protected static long sanitize(long number)
-
sanitize
protected static BigDecimal sanitize(BigDecimal number)
-
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
protected static BigDecimal divide(BigDecimal dividend, BigDecimal divisor)
-
getInitLabel
public String getInitLabel()
Description copied from interface:ScoreDefinition
Returns the label forScore.getInitScore()
.- Specified by:
getInitLabel
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Returns:
- never null
- See Also:
ScoreDefinition.getLevelLabels()
-
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
public String[] 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
public String formatScore(Score_ score)
Description copied from interface:ScoreDefinition
- Specified by:
formatScore
in interfaceScoreDefinition<Score_ extends Score<Score_>>
- Parameters:
score
- never null- Returns:
- never null
- See Also:
ScoreDefinition.parseScore(String)
-
isCompatibleArithmeticArgument
public boolean isCompatibleArithmeticArgument(Score score)
- 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.
-
-