Class AbstractMove<Solution_>

java.lang.Object
ai.timefold.solver.core.impl.move.AbstractMove<Solution_>
All Implemented Interfaces:
Move<Solution_>
Direct Known Subclasses:
ChangeMove, ListAssignMove, ListChangeMove, ListSwapMove, ListUnassignMove, SwapMove

@NullMarked public abstract class AbstractMove<Solution_> extends Object implements Move<Solution_>
  • Constructor Details

    • AbstractMove

      public AbstractMove()
  • Method Details

    • describe

      public final String describe()
      Description copied from interface: Move
      Describes the move type for statistical purposes. For example, a move which changes a variable "computer" on a class "Process" could be described as "ChangeMove(Process.computer)".

      The format is not formalized, but it is recommended to stick to ASCII, avoiding whitespace and special characters. Never parse the String returned by this method, it is only intended to be used by the solver.

      Specified by:
      describe in interface Move<Solution_>
      Returns:
      Non-empty String that describes the move type.
    • toString

      public abstract String toString()
      Overrides:
      toString in class Object
    • variableMetaModels

      public abstract List<? extends GenuineVariableMetaModel<Solution_,?,?>> variableMetaModels()
    • getVariableDescriptor

      protected static <Solution_> VariableDescriptor<Solution_> getVariableDescriptor(VariableMetaModel<Solution_,?,?> variableMetaModel)
    • getVariableDescriptor

      protected static <Solution_> GenuineVariableDescriptor<Solution_> getVariableDescriptor(PlanningVariableMetaModel<Solution_,?,?> variableMetaModel)
    • getVariableDescriptor

      protected static <Solution_> ListVariableDescriptor<Solution_> getVariableDescriptor(PlanningListVariableMetaModel<Solution_,?,?> variableMetaModel)