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, multiply, negate, power, subtract, toLevelNumbers, toShortString, withInitScore 
 - 
 
 - 
 
- 
- 
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()
 
 - 
 
 -