Interface ConstraintMatchAwareIncrementalScoreCalculator<Solution_,Score_ extends Score<Score_>>
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
annotationScore_
- theScore
type
- All Superinterfaces:
IncrementalScoreCalculator<Solution_,
Score_>
public interface ConstraintMatchAwareIncrementalScoreCalculator<Solution_,Score_ extends Score<Score_>>
extends IncrementalScoreCalculator<Solution_,Score_>
Allows a
IncrementalScoreCalculator
to report ConstraintMatchTotal
s
for explaining a score (= which score constraints match for how much)
and also for score corruption analysis.-
Method Summary
Modifier and TypeMethodDescriptionvoid
resetWorkingSolution
(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:
-