Class AbstractScoreDefinition<Score_ extends Score<Score_>>
java.lang.Object
ai.timefold.solver.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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static doubledivide(double dividend, double divisor) protected static intdivide(int dividend, int divisor) protected static longdivide(long dividend, long divisor) protected static BigDecimaldivide(BigDecimal dividend, BigDecimal divisor) String[]Returns a label for each score level.intReturns the length ofScore.toLevelNumbers()for everyScoreof this definition.booleanprotected static intsanitize(int number) protected static longsanitize(long number) protected static BigDecimalsanitize(BigDecimal number) toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ai.timefold.solver.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
-
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<Score_ extends Score<Score_>>- Returns:
- at least 1
-
getLevelLabels
Description copied from interface:ScoreDefinitionReturns 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.- Specified by:
getLevelLabelsin interfaceScoreDefinition<Score_ extends Score<Score_>>- Returns:
- never null, array with length of
ScoreDefinition.getLevelsSize(), each element is never null
-
isCompatibleArithmeticArgument
- Specified by:
isCompatibleArithmeticArgumentin 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
-