-
Task
-
Resolution: Done
-
Major
-
None
-
None
-
2020 Week 25-27 (from Jun 15)
-
5
-
NEW
-
NEW
During deprecation review, we stumbled upon the ScoreManager API, which is underdeveloped and it lacks functionality, causing users to go to the (private) ScoreDirector.
This is the minutes from that meeting, to give hints of what we may want to accomplish here:
ScoreDirector methods that PFC and custom moves need:
- getWorkingSolution()
- before/after*
- trigger*
- lookup*
ScoreDirector methods that we don't like to see in a public API:
- setWorkingSolution()
- close()/dispose()
- explainScore()
- calculateScore()
- isConstraintMatchEnabled()
- getConstraintMatchTotals() + getConstraintMatchTotalMap()
- ConstraintMatchTotal is public API, and it is externally mutable.
- It is also Comparable (packageName + constraintName).
- getIndictmentMap()
But users still need access to these! Therefore, deprecate + move to ScoreManager:
- explainScore()
- calculateScore()
- getIndictmentMap()
Solver#addProblemFactChanges
- PFC is in impl package, depends on ScoreDirector
- We want to promote PFC to API.
If ScoreDirector gets rid of all the harmful methods, both PFC and ScoreDirector can become public API, closing one of the biggest leaks of internal classes.
- incorporates
-
PLANNER-2013 ScoreManager (or SolverManager?) : expose Indictment and ConstraintMatchTotal API
-
- Resolved
-
- relates to
-
PLANNER-1977 Deprecate things before we branch for 8.0
-
- Resolved
-