Package org.optaplanner.core.api.score
Class AbstractScore<Score_ extends AbstractScore<Score_>>
- java.lang.Object
-
- org.optaplanner.core.api.score.AbstractScore<Score_>
-
- Type Parameters:
Score_
- the actual score type
- All Implemented Interfaces:
Serializable
,Comparable<Score_>
,Score<Score_>
- Direct Known Subclasses:
AbstractBendableScore
,HardMediumSoftBigDecimalScore
,HardMediumSoftLongScore
,HardMediumSoftScore
,HardSoftBigDecimalScore
,HardSoftLongScore
,HardSoftScore
,SimpleBigDecimalScore
,SimpleLongScore
,SimpleScore
public abstract class AbstractScore<Score_ extends AbstractScore<Score_>> extends Object implements Score<Score_>, Serializable
Abstract superclass forScore
.Subclasses must be immutable.
- See Also:
Score
,HardSoftScore
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
INIT_LABEL
protected int
initScore
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractScore(int initScore)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static String
buildScorePattern(boolean bendable, String... levelSuffixes)
protected String
buildShortString(Predicate<Number> notZero, String... levelLabels)
protected String
getInitPrefix()
int
getInitScore()
The init score is the negative of the number of uninitialized genuine planning variables.boolean
isSolutionInitialized()
Checks if thePlanningSolution
of this score was fully initialized when it was calculated.protected static int
parseInitScore(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String initScoreString)
protected static BigDecimal
parseLevelAsBigDecimal(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
protected static int
parseLevelAsInt(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
protected static long
parseLevelAsLong(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
protected static String[]
parseScoreTokens(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String... levelSuffixes)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface org.optaplanner.core.api.score.Score
add, divide, isFeasible, isZero, multiply, negate, power, subtract, toLevelNumbers, toShortString, withInitScore, zero
-
-
-
-
Field Detail
-
INIT_LABEL
protected static final String INIT_LABEL
- See Also:
- Constant Field Values
-
initScore
protected final int initScore
-
-
Constructor Detail
-
AbstractScore
protected AbstractScore(int initScore)
- Parameters:
initScore
- seeScore.getInitScore()
-
-
Method Detail
-
parseScoreTokens
protected static String[] parseScoreTokens(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String... levelSuffixes)
-
parseInitScore
protected static int parseInitScore(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String initScoreString)
-
parseLevelAsInt
protected static int parseLevelAsInt(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
-
parseLevelAsLong
protected static long parseLevelAsLong(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
-
parseLevelAsBigDecimal
protected static BigDecimal parseLevelAsBigDecimal(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)
-
buildScorePattern
protected static String buildScorePattern(boolean bendable, String... levelSuffixes)
-
getInitScore
public int getInitScore()
Description copied from interface:Score
The init score is the negative of the number of uninitialized genuine planning variables. If it's 0 (which it usually is), thePlanningSolution
is fully initialized and the score'sObject.toString()
does not mention it.During
Comparable.compareTo(Object)
, it's even more important than the hard score: if you don't want this behaviour, read about overconstrained planning in the reference manual.- Specified by:
getInitScore
in interfaceScore<Score_ extends AbstractScore<Score_>>
- Returns:
- higher is better, always negative (except in statistical calculations), 0 if all planning variables are initialized
-
isSolutionInitialized
public boolean isSolutionInitialized()
Description copied from interface:Score
Checks if thePlanningSolution
of this score was fully initialized when it was calculated.- Specified by:
isSolutionInitialized
in interfaceScore<Score_ extends AbstractScore<Score_>>
- Returns:
- true if
Score.getInitScore()
is 0
-
getInitPrefix
protected String getInitPrefix()
-
-