Interface ConstraintMatchAwareIncrementalScoreCalculator<Solution_,Score_ extends Score<Score_>>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotationScore_- theScoretype
- All Superinterfaces:
IncrementalScoreCalculator<Solution_,Score_>
public interface ConstraintMatchAwareIncrementalScoreCalculator<Solution_,Score_ extends Score<Score_>> extends IncrementalScoreCalculator<Solution_,Score_>
Allows aIncrementalScoreCalculatorto reportConstraintMatchTotals for explaining a score (= which score constraints match for how much) and also for score corruption analysis.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Collection<ConstraintMatchTotal<Score_>>getConstraintMatchTotals()Map<Object,Indictment<Score_>>getIndictmentMap()voidresetWorkingSolution(Solution_ workingSolution, boolean constraintMatchEnabled)Allows for increased performance because it only tracks if constraintMatchEnabled is true.-
Methods inherited from interface org.optaplanner.core.api.score.calculator.IncrementalScoreCalculator
afterEntityAdded, afterEntityRemoved, afterVariableChanged, beforeEntityAdded, beforeEntityRemoved, beforeVariableChanged, calculateScore, resetWorkingSolution
-
-
-
-
Method Detail
-
resetWorkingSolution
void resetWorkingSolution(Solution_ workingSolution, boolean constraintMatchEnabled)
Allows for increased performance because it only tracks if constraintMatchEnabled is true.Every implementation should call
resetWorkingSolution(Solution_, boolean)and only handle the constraintMatchEnabled parameter specifically (or ignore it).- Parameters:
workingSolution- never null, to pass toresetWorkingSolution(Solution_, boolean).constraintMatchEnabled- true ifgetConstraintMatchTotals()orgetIndictmentMap()might be called.
-
getConstraintMatchTotals
Collection<ConstraintMatchTotal<Score_>> getConstraintMatchTotals()
- Returns:
- never null
- Throws:
IllegalStateException- ifresetWorkingSolution(Solution_, boolean)'s constraintMatchEnabled parameter was false- See Also:
ScoreExplanation.getConstraintMatchTotalMap()
-
getIndictmentMap
Map<Object,Indictment<Score_>> getIndictmentMap()
- Returns:
- null if it should to be calculated non-incrementally from
getConstraintMatchTotals() - Throws:
IllegalStateException- ifresetWorkingSolution(Solution_, boolean)'s constraintMatchEnabled parameter was false- See Also:
ScoreExplanation.getIndictmentMap()
-
-