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 a
IncrementalScoreCalculator to report ConstraintMatchTotals
for explaining a score (= which score constraints match for how much)
and also for score corruption analysis.-
Method Summary
Modifier and TypeMethodDescriptionvoidresetWorkingSolution(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, afterListVariableChanged, afterListVariableElementAssigned, afterListVariableElementUnassigned, afterVariableChanged, beforeEntityAdded, beforeEntityRemoved, beforeListVariableChanged, beforeListVariableElementAssigned, beforeListVariableElementUnassigned, beforeVariableChanged, calculateScore, resetWorkingSolution
-
Method Details
-
resetWorkingSolution
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:
-
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:
-