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 aIncrementalScoreCalculator
to reportConstraintMatchTotal
s 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()
void
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, 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()
-
-