org.optaplanner.core.impl.heuristic.selector

## Interface Selector

- All Superinterfaces:
    EventListener, PhaseLifecycleListener, SolverLifecycleListener
  All Known Subinterfaces:
    EntityIndependentValueSelector, EntitySelector, IterableSelector<T>, ListIterableSelector<T>, MoveSelector, PillarSelector, SubChainSelector, ValueSelector
  All Known Implementing Classes:
    AbstractCachingEntitySelector, AbstractCachingMoveSelector, AbstractCachingValueSelector, AbstractEntitySelector, AbstractMoveSelector, AbstractSelector, AbstractValueSelector, CachingEntitySelector, CachingMoveSelector, CachingValueSelector, CartesianProductMoveSelector, ChangeMoveSelector, CompositeMoveSelector, DefaultPillarSelector, DefaultSubChainSelector, DowncastingValueSelector, EntityDependentSortingValueSelector, EntityIndependentFilteringValueSelector, EntityIndependentInitializedValueSelector, FilteringEntitySelector, FilteringMoveSelector, FilteringValueSelector, FromEntityPropertyValueSelector, FromSolutionEntitySelector, FromSolutionPropertyValueSelector, GenericMoveSelector, InitializedValueSelector, KOptMoveSelector, MimicRecordingEntitySelector, MimicRecordingValueSelector, MimicReplayingEntitySelector, MimicReplayingValueSelector, MoveIteratorFactoryToMoveSelectorBridge, MoveListFactoryToMoveSelectorBridge, NearEntityNearbyEntitySelector, NearEntityNearbyValueSelector, PillarChangeMoveSelector, PillarSwapMoveSelector, ProbabilityEntitySelector, ProbabilityMoveSelector, ProbabilityValueSelector, ReinitializeVariableValueSelector, SelectedCountLimitEntitySelector, SelectedCountLimitMoveSelector, SelectedCountLimitValueSelector, ShufflingEntitySelector, ShufflingMoveSelector, ShufflingValueSelector, SortingEntitySelector, SortingMoveSelector, SortingValueSelector, SubChainChangeMoveSelector, SubChainSwapMoveSelector, SwapMoveSelector, TailChainSwapMoveSelector, UnionMoveSelector

      public interface Selector
      extends PhaseLifecycleListener

  General interface for `MoveSelector`, `EntitySelector` and `ValueSelector` which generates `Move`s or parts of them.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `SelectionCacheType` | `getCacheType()` Unless this selector itself caches, this returns `SelectionCacheType.JUST_IN_TIME`, even if a selector child caches.
    `boolean` | `isCountable()` If false, then `isNeverEnding()` is true.
    `boolean` | `isNeverEnding()` Is true if `isCountable()` is false or if this selector is in random order (for most cases).

    - ### Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListener

      `phaseEnded, phaseStarted, stepEnded, stepStarted`

    - ### Methods inherited from interface org.optaplanner.core.impl.solver.event.SolverLifecycleListener

      `solvingEnded, solvingStarted`

- - ### Method Detail

    - #### isCountable

          boolean isCountable()

      If false, then `isNeverEnding()` is true.
      Returns:
        true if all the `ValueRange`s are countable (for example a double value range between 1.2 and 1.4 is not countable)

    - #### isNeverEnding

          boolean isNeverEnding()

      Is true if `isCountable()` is false or if this selector is in random order (for most cases). Is never true when this selector is in shuffled order (which is less scalable but more exact).
      Returns:
        true if the `Iterator.hasNext()` of the `Iterator` created by `Iterable.iterator()` never returns false (except when it's empty).

    - #### getCacheType

          SelectionCacheType getCacheType()

      Unless this selector itself caches, this returns `SelectionCacheType.JUST_IN_TIME`, even if a selector child caches.
      Returns:
        never null

Copyright © 2006–2019 JBoss by Red Hat. All rights reserved.