Interface SolverEventListener<Solution_>

Type Parameters:
Solution_ - the solution type, the class with the PlanningSolution annotation
All Superinterfaces:
EventListener
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 SolverEventListener<Solution_> extends EventListener
  • Method Details

    • bestSolutionChanged

      void bestSolutionChanged(BestSolutionChangedEvent<Solution_> event)
      Called once every time when a better PlanningSolution is found. The PlanningSolution is guaranteed to be initialized. Early in the solving process it's usually called more frequently than later on.

      Called from the solver thread. Should return fast, because it steals time from the Solver.

      In real-time planning If Solver.addProblemChange(ProblemChange) has been called once or more, all ProblemChanges in the queue will be processed and this method is called only once. In that case, the former best PlanningSolution is considered stale, so it doesn't matter whether the new Score is better than that or not.

      Parameters:
      event - never null