Interface CustomPhaseCommand<Solution_>
-
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
annotation
- All Known Implementing Classes:
AbstractCustomPhaseCommand
,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.An implementation must extend
AbstractCustomPhaseCommand
to ensure backwards compatibility in future versions.To add custom properties, configure custom properties and add public setters for them.
- See Also:
AbstractCustomPhaseCommand
-
-
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 everyScoreDirector.calculateScore()
call) to ensure all shadow variables are updated.- Parameters:
scoreDirector
- never null, theScoreDirector
that needs to get notified of the changes.
-
-