Interface CustomPhaseCommand<Solution_>
- 
- Type Parameters:
 Solution_- the solution type, the class with thePlanningSolutionannotation
- 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 aPhaseof theSolverthat 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 voidchangeWorkingSolution(ScoreDirector<Solution_> scoreDirector)Changesworking solutionofScoreDirector.getWorkingSolution(). 
 - 
 
- 
- 
Method Detail
- 
changeWorkingSolution
void changeWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Changesworking solutionofScoreDirector.getWorkingSolution(). When theworking solutionis modified, theScoreDirectormust be correctly notified (throughScoreDirector.beforeVariableChanged(Object, String)andScoreDirector.afterVariableChanged(Object, String)), otherwise calculatedScores 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, theScoreDirectorthat needs to get notified of the changes.
 
 - 
 
 -