Interface ProblemFactChange<Solution_>

  • Type Parameters:
    Solution_ - the solution type, the class with the PlanningSolution annotation
    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 ProblemFactChange<Solution_>
    A ProblemFactChange represents a change in 1 or more problem facts of a PlanningSolution. Problem facts used by a Solver must not be changed while it is solving, but by scheduling this command to the Solver, you can change them when the time is right.

    Note that the Solver clones a PlanningSolution at will. So any change must be done on the problem facts and planning entities referenced by the PlanningSolution of the ScoreDirector. On each change it should also notify the ScoreDirector accordingly.