Class ListUnassignMove<Solution_>

  • All Implemented Interfaces:
    Move<Solution_>

    public class ListUnassignMove<Solution_>
    extends AbstractMove<Solution_>
    • Method Detail

      • isMoveDoable

        public boolean isMoveDoable​(ScoreDirector<Solution_> scoreDirector)
        Description copied from interface: Move
        Called before a move is evaluated to decide whether the move can be done and evaluated. A Move is not doable if:
        • Either doing it would change nothing in the PlanningSolution.
        • Either it's simply not possible to do (for example due to built-in hard constraints).

        It is recommended to keep this method implementation simple: do not use it in an attempt to satisfy normal hard and soft constraints.

        Although you could also filter out non-doable moves in for example the MoveSelector or MoveListFactory, this is not needed as the Solver will do it for you.

        Parameters:
        scoreDirector - the ScoreDirector not yet modified by the move.
        Returns:
        true if the move achieves a change in the solution and the move is possible to do on the solution.
      • getSimpleMoveTypeDescription

        public String getSimpleMoveTypeDescription()
        Description copied from interface: Move
        Describes the move type for statistical purposes. For example "ChangeMove(Process.computer)".

        The format is not formalized. Never parse the String returned by this method.

        Returns:
        never null
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object