## Uses of Interface
org.optaplanner.core.impl.heuristic.move.Move

- Packages that use Move
  Package | Description
  --- | ---
  org.optaplanner.core.impl.constructionheuristic.placer |
  org.optaplanner.core.impl.constructionheuristic.scope |
  org.optaplanner.core.impl.exhaustivesearch.node |
  org.optaplanner.core.impl.heuristic.move |
  org.optaplanner.core.impl.heuristic.selector.common.iterator |
  org.optaplanner.core.impl.heuristic.selector.move.composite |
  org.optaplanner.core.impl.heuristic.selector.move.decorator |
  org.optaplanner.core.impl.heuristic.selector.move.factory |
  org.optaplanner.core.impl.heuristic.selector.move.generic |
  org.optaplanner.core.impl.heuristic.selector.move.generic.chained |
  org.optaplanner.core.impl.heuristic.thread |
  org.optaplanner.core.impl.localsearch.scope |
  org.optaplanner.core.impl.partitionedsearch.scope |
  org.optaplanner.core.impl.phase.scope |
  org.optaplanner.core.impl.score.director |

- - ### Uses of Move in org.optaplanner.core.impl.constructionheuristic.placer

    Methods in org.optaplanner.core.impl.constructionheuristic.placer that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<Move<Solution_>>` | Placement.`iterator()` |

    Constructor parameters in org.optaplanner.core.impl.constructionheuristic.placer with type arguments of type Move
    Constructor | Description
    --- | ---
    `Placement​(Iterator<Move<Solution_>> moveIterator)` |

  - ### Uses of Move in org.optaplanner.core.impl.constructionheuristic.scope

    Methods in org.optaplanner.core.impl.constructionheuristic.scope that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Move<Solution_>` | ConstructionHeuristicStepScope.`getStep()` |
    `Move<Solution_>` | ConstructionHeuristicStepScope.`getUndoStep()` |

    Methods in org.optaplanner.core.impl.constructionheuristic.scope with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ConstructionHeuristicStepScope.`setStep​(Move<Solution_> step)` |
    `void` | ConstructionHeuristicStepScope.`setUndoStep​(Move<Solution_> undoStep)` |

    Constructors in org.optaplanner.core.impl.constructionheuristic.scope with parameters of type Move
    Constructor | Description
    --- | ---
    `ConstructionHeuristicMoveScope​(ConstructionHeuristicStepScope<Solution_> stepScope, int moveIndex, Move<Solution_> move)` |

  - ### Uses of Move in org.optaplanner.core.impl.exhaustivesearch.node

    Methods in org.optaplanner.core.impl.exhaustivesearch.node that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Move` | ExhaustiveSearchNode.`getMove()` |
    `Move` | ExhaustiveSearchNode.`getUndoMove()` |

    Methods in org.optaplanner.core.impl.exhaustivesearch.node with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ExhaustiveSearchNode.`setMove​(Move move)` |
    `void` | ExhaustiveSearchNode.`setUndoMove​(Move undoMove)` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.move

    Classes in org.optaplanner.core.impl.heuristic.move that implement Move
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractMove<Solution_>` | Abstract superclass for `Move`.
    `class` | `CompositeMove<Solution_>` | A CompositeMove is composed out of multiple other moves.
    `class` | `NoChangeMove<Solution_>` | Makes no changes.

    Fields in org.optaplanner.core.impl.heuristic.move declared as Move
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Move<Solution_>[]` | CompositeMove.`moves` |

    Methods in org.optaplanner.core.impl.heuristic.move with type parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <Solution_,​Move_ extends Move<Solution_>> Move<Solution_>` | CompositeMove.`buildMove​(List<Move_> moveList)` |
    `static <Solution_,​Move_ extends Move<Solution_>> Move<Solution_>` | CompositeMove.`buildMove​(Move_... moves)` |

    Methods in org.optaplanner.core.impl.heuristic.move that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <Solution_,​Move_ extends Move<Solution_>> Move<Solution_>` | CompositeMove.`buildMove​(List<Move_> moveList)` |
    `static <Solution_,​Move_ extends Move<Solution_>> Move<Solution_>` | CompositeMove.`buildMove​(Move_... moves)` |
    `Move<Solution_>` | Move.`doMove​(ScoreDirector<Solution_> scoreDirector)` | Does the move (which indirectly affects the `ScoreDirector.getWorkingSolution()`).
    `Move<Solution_>[]` | CompositeMove.`getMoves()` |
    `default Move<Solution_>` | Move.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` | Rebases a move from an origin `ScoreDirector` to another destination `ScoreDirector` which is usually on another `Thread` or JVM.

    Methods in org.optaplanner.core.impl.heuristic.move with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <Solution_,​Move_ extends Move<Solution_>> Move<Solution_>` | CompositeMove.`buildMove​(Move_... moves)` |

    Constructors in org.optaplanner.core.impl.heuristic.move with parameters of type Move
    Constructor | Description
    --- | ---
    `CompositeMove​(Move<Solution_>... moves)` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.common.iterator

    Classes in org.optaplanner.core.impl.heuristic.selector.common.iterator with type parameters of type Move
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractOriginalChangeIterator<S extends Move>` |
    `class` | `AbstractRandomChangeIterator<S extends Move>` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.move.composite

    Fields in org.optaplanner.core.impl.heuristic.selector.move.composite with type parameters of type Move
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected NavigableMap<Double,​Iterator<Move>>` | UnionMoveSelector.RandomUnionMoveIterator.`moveIteratorMap` |
    `protected Map<Iterator<Move>,​org.optaplanner.core.impl.heuristic.selector.move.composite.UnionMoveSelector.ProbabilityItem>` | UnionMoveSelector.RandomUnionMoveIterator.`probabilityItemMap` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.composite that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Move` | CartesianProductMoveSelector.OriginalCartesianProductMoveIterator.`createUpcomingSelection()` |
    `Move` | CartesianProductMoveSelector.RandomCartesianProductMoveIterator.`next()` |
    `Move` | UnionMoveSelector.RandomUnionMoveIterator.`next()` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.composite that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<Move>` | CartesianProductMoveSelector.`iterator()` |
    `Iterator<Move>` | UnionMoveSelector.`iterator()` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.move.decorator

    Fields in org.optaplanner.core.impl.heuristic.selector.move.decorator with type parameters of type Move
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected List<Move>` | AbstractCachingMoveSelector.`cachedMoveList` |
    `protected NavigableMap<Double,​Move>` | ProbabilityMoveSelector.`cachedMoveMap` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.decorator that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<Move>` | CachingMoveSelector.`iterator()` |
    `Iterator<Move>` | FilteringMoveSelector.`iterator()` |
    `Iterator<Move>` | ProbabilityMoveSelector.`iterator()` |
    `Iterator<Move>` | SelectedCountLimitMoveSelector.`iterator()` |
    `Iterator<Move>` | ShufflingMoveSelector.`iterator()` |
    `Iterator<Move>` | SortingMoveSelector.`iterator()` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.decorator with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | FilteringMoveSelector.`accept​(ScoreDirector scoreDirector, Move move)` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.move.factory

    Fields in org.optaplanner.core.impl.heuristic.selector.move.factory with type parameters of type Move
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected List<Move>` | MoveListFactoryToMoveSelectorBridge.`cachedMoveList` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.factory that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<? extends Move<Solution_>>` | MoveListFactory.`createMoveList​(Solution_ solution)` | When it is called depends on the configured `SelectionCacheType`.
    `Iterator<? extends Move<Solution_>>` | MoveIteratorFactory.`createOriginalMoveIterator​(ScoreDirector<Solution_> scoreDirector)` | When it is called depends on the configured `SelectionCacheType`.
    `Iterator<? extends Move<Solution_>>` | MoveIteratorFactory.`createRandomMoveIterator​(ScoreDirector<Solution_> scoreDirector, Random workingRandom)` | When it is called depends on the configured `SelectionCacheType`.
    `Iterator<Move>` | MoveIteratorFactoryToMoveSelectorBridge.`iterator()` |
    `Iterator<Move>` | MoveListFactoryToMoveSelectorBridge.`iterator()` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.move.generic

    Classes in org.optaplanner.core.impl.heuristic.selector.move.generic that implement Move
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ChangeMove<Solution_>` |
    `class` | `PillarChangeMove<Solution_>` | This `Move` is not cacheable.
    `class` | `PillarSwapMove<Solution_>` | This `Move` is not cacheable.
    `class` | `SwapMove<Solution_>` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.generic that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<Move>` | ChangeMoveSelector.`iterator()` |
    `Iterator<Move>` | PillarChangeMoveSelector.`iterator()` |
    `Iterator<Move>` | PillarSwapMoveSelector.`iterator()` |
    `Iterator<Move>` | SwapMoveSelector.`iterator()` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.selector.move.generic.chained

    Classes in org.optaplanner.core.impl.heuristic.selector.move.generic.chained that implement Move
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ChainedChangeMove<Solution_>` |
    `class` | `ChainedSwapMove<Solution_>` |
    `class` | `KOptMove<Solution_>` |
    `class` | `SubChainChangeMove<Solution_>` |
    `class` | `SubChainReversingChangeMove<Solution_>` |
    `class` | `SubChainReversingSwapMove<Solution_>` | This `Move` is not cacheable.
    `class` | `SubChainSwapMove<Solution_>` | This `Move` is not cacheable.
    `class` | `TailChainSwapMove<Solution_>` | Also known as a 2-opt move.

    Methods in org.optaplanner.core.impl.heuristic.selector.move.generic.chained that return types with arguments of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<Move>` | KOptMoveSelector.`iterator()` |
    `Iterator<Move>` | SubChainChangeMoveSelector.`iterator()` |
    `Iterator<Move>` | SubChainSwapMoveSelector.`iterator()` |
    `Iterator<Move>` | TailChainSwapMoveSelector.`iterator()` |

  - ### Uses of Move in org.optaplanner.core.impl.heuristic.thread

    Methods in org.optaplanner.core.impl.heuristic.thread that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Move<Solution_>` | MoveEvaluationOperation.`getMove()` |
    `Move<Solution_>` | OrderByMoveIndexBlockingQueue.MoveResult.`getMove()` |
    `Move<Solution_>` | ApplyStepOperation.`getStep()` |

    Methods in org.optaplanner.core.impl.heuristic.thread with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | OrderByMoveIndexBlockingQueue.`addMove​(int moveThreadIndex, int stepIndex, int moveIndex, Move<Solution_> move, Score score)` | This method is thread-safe.
    `void` | OrderByMoveIndexBlockingQueue.`addUndoableMove​(int moveThreadIndex, int stepIndex, int moveIndex, Move<Solution_> move)` | This method is thread-safe.
    `protected void` | MoveThreadRunner.`predictWorkingStepScore​(Move<Solution_> step, Score score)` |

    Constructors in org.optaplanner.core.impl.heuristic.thread with parameters of type Move
    Constructor | Description
    --- | ---
    `ApplyStepOperation​(int stepIndex, Move<Solution_> step, Score score)` |
    `MoveEvaluationOperation​(int stepIndex, int moveIndex, Move<Solution_> move)` |
    `MoveResult​(int moveThreadIndex, int stepIndex, int moveIndex, Move<Solution_> move, boolean moveDoable, Score score)` |

  - ### Uses of Move in org.optaplanner.core.impl.localsearch.scope

    Methods in org.optaplanner.core.impl.localsearch.scope that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Move<Solution_>` | LocalSearchStepScope.`getStep()` |
    `Move<Solution_>` | LocalSearchStepScope.`getUndoStep()` |

    Methods in org.optaplanner.core.impl.localsearch.scope with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | LocalSearchStepScope.`setStep​(Move<Solution_> step)` |
    `void` | LocalSearchStepScope.`setUndoStep​(Move<Solution_> undoStep)` |

    Constructors in org.optaplanner.core.impl.localsearch.scope with parameters of type Move
    Constructor | Description
    --- | ---
    `LocalSearchMoveScope​(LocalSearchStepScope<Solution_> stepScope, int moveIndex, Move<Solution_> move)` |

  - ### Uses of Move in org.optaplanner.core.impl.partitionedsearch.scope

    Classes in org.optaplanner.core.impl.partitionedsearch.scope that implement Move
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `PartitionChangeMove<Solution_>` | Applies a new best solution from a partition child solver into the global working solution of the parent solver.

  - ### Uses of Move in org.optaplanner.core.impl.phase.scope

    Fields in org.optaplanner.core.impl.phase.scope declared as Move
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Move<Solution_>` | AbstractMoveScope.`move` |

    Methods in org.optaplanner.core.impl.phase.scope that return Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `Move<Solution_>` | AbstractMoveScope.`getMove()` |

    Constructors in org.optaplanner.core.impl.phase.scope with parameters of type Move
    Constructor | Description
    --- | ---
    `AbstractMoveScope​(int moveIndex, Move<Solution_> move)` |

  - ### Uses of Move in org.optaplanner.core.impl.score.director

    Methods in org.optaplanner.core.impl.score.director with parameters of type Move
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AbstractScoreDirector.`assertExpectedUndoMoveScore​(Move move, Score beforeMoveScore)` |
    `void` | InnerScoreDirector.`assertExpectedUndoMoveScore​(Move move, Score beforeMoveScore)` | Asserts that if the `Score` is calculated for the current `working solution` in the current `ScoreDirector` (with incremental calculation residue), it is equal to the parameter `beforeMoveScore`.
    `Score` | AbstractScoreDirector.`doAndProcessMove​(Move<Solution_> move, boolean assertMoveScoreFromScratch)` |
    `void` | AbstractScoreDirector.`doAndProcessMove​(Move<Solution_> move, boolean assertMoveScoreFromScratch, Consumer<Score> moveProcessor)` |
    `Score` | InnerScoreDirector.`doAndProcessMove​(Move<Solution_> move, boolean assertMoveScoreFromScratch)` |
    `void` | InnerScoreDirector.`doAndProcessMove​(Move<Solution_> move, boolean assertMoveScoreFromScratch, Consumer<Score> moveProcessor)` |