Package org.optaplanner.core.impl.heuristic.selector.move

## Interface MoveSelectorFactory<Solution_>

- All Known Implementing Classes:
    `AbstractMoveSelectorFactory`, `CartesianProductMoveSelectorFactory`, `ChangeMoveSelectorFactory`, `KOptMoveSelectorFactory`, `MoveIteratorFactoryFactory`, `MoveListFactoryFactory`, `PillarChangeMoveSelectorFactory`, `PillarSwapMoveSelectorFactory`, `SubChainChangeMoveSelectorFactory`, `SubChainSwapMoveSelectorFactory`, `SwapMoveSelectorFactory`, `TailChainSwapMoveSelectorFactory`, `UnionMoveSelectorFactory`

      public interface MoveSelectorFactory<Solution_>

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MoveSelector<Solution_>` | `buildMoveSelector​(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, SelectionOrder inheritedSelectionOrder)` | Builds `MoveSelector` from the `MoveSelectorConfig` and provided parameters.
    `static <Solution_> MoveSelectorFactory<Solution_>` | `create​(MoveSelectorConfig<?> moveSelectorConfig)` |

- - ### Method Detail

    - #### create

          static <Solution_> MoveSelectorFactory<Solution_> create​(MoveSelectorConfig<?> moveSelectorConfig)

    - #### buildMoveSelector

          MoveSelector<Solution_> buildMoveSelector​(HeuristicConfigPolicy<Solution_> configPolicy,
                                                    SelectionCacheType minimumCacheType,
                                                    SelectionOrder inheritedSelectionOrder)

      Builds `MoveSelector` from the `MoveSelectorConfig` and provided parameters.
      Parameters:
        `configPolicy` - never null
        `minimumCacheType` - never null, If caching is used (different from `SelectionCacheType.JUST_IN_TIME`), then it should be at least this `SelectionCacheType` because an ancestor already uses such caching and less would be pointless.
        `inheritedSelectionOrder` - never null
      Returns:
        never null