Package org.optaplanner.core.api.score
Interface ScoreExplanation<Solution_,Score_ extends Score<Score_>>
- 
- Type Parameters:
- Solution_- the solution type, the class with the- PlanningSolutionannotation
- Score_- the actual score type
 - All Known Implementing Classes:
- DefaultScoreExplanation
 
 public interface ScoreExplanation<Solution_,Score_ extends Score<Score_>>Build byScoreManager.explainScore(Object)to holdConstraintMatchTotals andIndictments necessary to explain the quality of a particularScore.
- 
- 
Method SummaryAll Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Map<String,ConstraintMatchTotal<Score_>>getConstraintMatchTotalMap()Map<Object,Indictment<Score_>>getIndictmentMap()Explains the impact of each planning entity or problem fact on theScore.List<ConstraintJustification>getJustificationList()Explains theScoreofgetScore()for all constraints.default <ConstraintJustification_ extends ConstraintJustification>
 List<ConstraintJustification_>getJustificationList(Class<? extends ConstraintJustification_> constraintJustificationClass)Explains theScoreofgetScore()for all constraints justified with a givenConstraintJustificationtype.Score_getScore()Return theScorebeing explained.Solution_getSolution()Retrieve thePlanningSolutionthat the score being explained comes from.StringgetSummary()Returns a diagnostic text that explains theScorethrough theConstraintMatchAPI to identify which constraints or planning entities cause that score quality.
 
- 
- 
- 
Method Detail- 
getSolutionSolution_ getSolution() Retrieve thePlanningSolutionthat the score being explained comes from.- Returns:
- never null
 
 - 
getScoreScore_ getScore() Return theScorebeing explained. If the specificScoretype used by thePlanningSolutionis required, callgetSolution()and retrieve it from there.- Returns:
- never null
 
 - 
getSummaryString getSummary() Returns a diagnostic text that explains theScorethrough theConstraintMatchAPI to identify which constraints or planning entities cause that score quality. In case of aninfeasiblesolution, this can help diagnose the cause of that.Do not parse this string. Instead, to provide this information in a UI or a service, use getConstraintMatchTotalMap()andgetIndictmentMap()and convert those into a domain specific API.- Returns:
- never null
 
 - 
getConstraintMatchTotalMapMap<String,ConstraintMatchTotal<Score_>> getConstraintMatchTotalMap() Explains theScoreofgetScore()by splitting it up perConstraint.The sum of ConstraintMatchTotal.getScore()equalsgetScore().- Returns:
- never null, the key is the constraintId(to create one, useConstraintMatchTotal.composeConstraintId(String, String)).
- See Also:
- getIndictmentMap()
 
 - 
getJustificationListList<ConstraintJustification> getJustificationList() Explains theScoreofgetScore()for all constraints. The return value of this method is determined by several factors:- 
 With Constraint Streams, the user has an option to provide a custom justification mapping,
 implementing ConstraintJustification. If provided, everyConstraintMatchof such constraint will be associated with this custom justification class. Every constraint not associated with a custom justification class will be associated withDefaultConstraintJustification.
- 
 With ConstraintMatchAwareIncrementalScoreCalculator, everyConstraintMatchwill be associated with the justification class that the user created it with.
- 
 With score DRL, every ConstraintMatchwill be associated withDefaultConstraintJustification.
 - Returns:
- never null, all constraint matches
- See Also:
- getIndictmentMap()
 
- 
 With Constraint Streams, the user has an option to provide a custom justification mapping,
 implementing 
 - 
getJustificationListdefault <ConstraintJustification_ extends ConstraintJustification> List<ConstraintJustification_> getJustificationList(Class<? extends ConstraintJustification_> constraintJustificationClass) Explains theScoreofgetScore()for all constraints justified with a givenConstraintJustificationtype. Otherwise, as defined bygetJustificationList().- Parameters:
- constraintJustificationClass- never null
- Returns:
- never null, all constraint matches associated with the given justification class
- See Also:
- getIndictmentMap()
 
 - 
getIndictmentMapMap<Object,Indictment<Score_>> getIndictmentMap() Explains the impact of each planning entity or problem fact on theScore. AnIndictmentis basically the inverse of aConstraintMatchTotal: it is aScoretotal for any of theindicted objects.The sum of ConstraintMatchTotal.getScore()differs fromgetScore()because eachConstraintMatch.getScore()is counted for each of theindicted objects.- Returns:
- never null, the key is a problem factor aplanning entity
- See Also:
- getConstraintMatchTotalMap()
 
 
- 
 
-