Interface CustomPhaseCommand<Solution_>
-
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
annotation
- All Known Implementing Classes:
NoChangeCustomPhaseCommand
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface CustomPhaseCommand<Solution_>
Runs a custom algorithm as aPhase
of theSolver
that changes the planning variables. Do not abuse to change the problems facts, instead useSolver.addProblemFactChange(ProblemFactChange)
for that.To add custom properties, configure custom properties and add public setters for them.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
changeWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Changesworking solution
ofScoreDirector.getWorkingSolution()
.
-
-
-
Method Detail
-
changeWorkingSolution
void changeWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Changesworking solution
ofScoreDirector.getWorkingSolution()
. When theworking solution
is modified, theScoreDirector
must be correctly notified (throughScoreDirector.beforeVariableChanged(Object, String)
andScoreDirector.afterVariableChanged(Object, String)
), otherwise calculatedScore
s will be corrupted.Don't forget to call
ScoreDirector.triggerVariableListeners()
after each set of changes (especially before everyInnerScoreDirector.calculateScore()
call) to ensure all shadow variables are updated.- Parameters:
scoreDirector
- never null, theScoreDirector
that needs to get notified of the changes.
-
-