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

## Class SwapMoveSelectorFactory<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.AbstractFromConfigFactory<Solution_,​SelectorConfig_>
  - - org.optaplanner.core.impl.heuristic.selector.AbstractSelectorFactory<Solution_,​MoveSelectorConfig_>
    - - org.optaplanner.core.impl.heuristic.selector.move.AbstractMoveSelectorFactory<Solution_,​SwapMoveSelectorConfig>
      - - org.optaplanner.core.impl.heuristic.selector.move.generic.SwapMoveSelectorFactory<Solution_>

- All Implemented Interfaces:
    `MoveSelectorFactory<Solution_>`

      public class SwapMoveSelectorFactory<Solution_>
      extends AbstractMoveSelectorFactory<Solution_,​SwapMoveSelectorConfig>

- - ### Field Summary

    - ### Fields inherited from class org.optaplanner.core.impl.AbstractFromConfigFactory

      `config`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SwapMoveSelectorFactory​(SwapMoveSelectorConfig moveSelectorConfig)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected MoveSelector<Solution_>` | `buildBaseMoveSelector​(HeuristicConfigPolicy<Solution_> configPolicy, SelectionCacheType minimumCacheType, boolean randomSelection)` | Builds a base `MoveSelector` without any advanced capabilities (filtering, sorting, ...).
    `protected MoveSelectorConfig<?>` | `buildUnfoldedMoveSelectorConfig​(Collection<EntityDescriptor<Solution_>> entityDescriptors)` |
    `protected MoveSelectorConfig<?>` | `buildUnfoldedMoveSelectorConfig​(HeuristicConfigPolicy<Solution_> configPolicy)` | To provide unfolded MoveSelectorConfig, override this method in a subclass.

    - ### Methods inherited from class org.optaplanner.core.impl.heuristic.selector.move.AbstractMoveSelectorFactory

      `applySorting, buildMoveSelector, determineBaseRandomSelection, isBaseInherentlyCached, validateSorting`

    - ### Methods inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelectorFactory

      `validateCacheTypeVersusSelectionOrder`

    - ### Methods inherited from class org.optaplanner.core.impl.AbstractFromConfigFactory

      `deduceEntityDescriptor, deduceEntityDescriptor, deduceVariableDescriptor, deduceVariableDescriptor, deduceVariableDescriptorList`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SwapMoveSelectorFactory

          public SwapMoveSelectorFactory​(SwapMoveSelectorConfig moveSelectorConfig)

  - ### Method Detail

    - #### buildBaseMoveSelector

          protected MoveSelector<Solution_> buildBaseMoveSelector​(HeuristicConfigPolicy<Solution_> configPolicy,
                                                                  SelectionCacheType minimumCacheType,
                                                                  boolean randomSelection)

      Description copied from class: `AbstractMoveSelectorFactory`
      Builds a base `MoveSelector` without any advanced capabilities (filtering, sorting, ...).
      Specified by:
        `buildBaseMoveSelector` in class `AbstractMoveSelectorFactory<Solution_,​SwapMoveSelectorConfig>`
      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.
        `randomSelection` - true is equivalent to `SelectionOrder.RANDOM`, false is equivalent to `SelectionOrder.ORIGINAL`
      Returns:
        never null

    - #### buildUnfoldedMoveSelectorConfig

          protected MoveSelectorConfig<?> buildUnfoldedMoveSelectorConfig​(HeuristicConfigPolicy<Solution_> configPolicy)

      Description copied from class: `AbstractMoveSelectorFactory`
      To provide unfolded MoveSelectorConfig, override this method in a subclass.
      Overrides:
        `buildUnfoldedMoveSelectorConfig` in class `AbstractMoveSelectorFactory<Solution_,​SwapMoveSelectorConfig>`
      Parameters:
        `configPolicy` - never null
      Returns:
        null if no unfolding is needed

    - #### buildUnfoldedMoveSelectorConfig

          protected MoveSelectorConfig<?> buildUnfoldedMoveSelectorConfig​(Collection<EntityDescriptor<Solution_>> entityDescriptors)