Class SubListChangeMove<Solution_>

  • Type Parameters:
    Solution_ - the solution type, the class with the PlanningSolution annotation
    All Implemented Interfaces:

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

      • getSourceEntity

        public Object getSourceEntity()
      • getFromIndex

        public int getFromIndex()
      • getSubListSize

        public int getSubListSize()
      • getToIndex

        public int getToIndex()
      • isReversing

        public boolean isReversing()
      • getDestinationEntity

        public Object getDestinationEntity()
      • getDestinationIndex

        public int getDestinationIndex()
      • 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.

        scoreDirector - the ScoreDirector not yet modified by the move.
        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(".

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

        never null
      • hashCode

        public int hashCode()
        hashCode in class Object