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 StringINIT_LABELprotected intinitScore
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractScore(int initScore)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static StringbuildScorePattern(boolean bendable, String... levelSuffixes)protected StringbuildShortString(Predicate<Number> notZero, String... levelLabels)protected StringgetInitPrefix()intgetInitScore()The init score is the negative of the number of uninitialized genuine planning variables.booleanisSolutionInitialized()Checks if thePlanningSolutionof this score was fully initialized when it was calculated.protected static intparseInitScore(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String initScoreString)protected static BigDecimalparseLevelAsBigDecimal(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)protected static intparseLevelAsInt(Class<? extends AbstractScore<?>> scoreClass, String scoreString, String levelString)protected static longparseLevelAsLong(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:ScoreThe init score is the negative of the number of uninitialized genuine planning variables. If it's 0 (which it usually is), thePlanningSolutionis 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:
getInitScorein 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:ScoreChecks if thePlanningSolutionof this score was fully initialized when it was calculated.- Specified by:
isSolutionInitializedin interfaceScore<Score_ extends AbstractScore<Score_>>- Returns:
- true if
Score.getInitScore()is 0
-
getInitPrefix
protected String getInitPrefix()
-
-