Package org.optaplanner.core.impl.heuristic.selector.value.decorator

## Class EntityIndependentFilteringValueSelector

- java.lang.Object
- - org.optaplanner.core.impl.heuristic.selector.AbstractSelector
  - - org.optaplanner.core.impl.heuristic.selector.value.AbstractValueSelector
    - - org.optaplanner.core.impl.heuristic.selector.value.decorator.FilteringValueSelector
      - - org.optaplanner.core.impl.heuristic.selector.value.decorator.EntityIndependentFilteringValueSelector

- All Implemented Interfaces:
    `Iterable<Object>`, `EventListener`, `IterableSelector<Object>`, `Selector`, `EntityIndependentValueSelector`, `ValueSelector`, `PhaseLifecycleListener`, `SolverLifecycleListener`

      public class EntityIndependentFilteringValueSelector
      extends FilteringValueSelector
      implements EntityIndependentValueSelector

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.optaplanner.core.impl.heuristic.selector.value.decorator.FilteringValueSelector

      `FilteringValueSelector.JustInTimeFilteringValueIterator`

  - ### Field Summary

    - ### Fields inherited from class org.optaplanner.core.impl.heuristic.selector.value.decorator.FilteringValueSelector

      `bailOutEnabled, childValueSelector, filterList, scoreDirector`

    - ### Fields inherited from class org.optaplanner.core.impl.heuristic.selector.AbstractSelector

      `logger, phaseLifecycleSupport, workingRandom`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EntityIndependentFilteringValueSelector​(EntityIndependentValueSelector childValueSelector, List<SelectionFilter> filterList)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected long` | `determineBailOutSize()` |
    `long` | `getSize()` | A random JIT `Selector` with `Selector.isNeverEnding()` true should return a size as if it would be able to return each distinct element only once, because the size can be used in `SelectionProbabilityWeightFactory`.
    `Iterator<Object>` | `iterator()` |

    - ### Methods inherited from class org.optaplanner.core.impl.heuristic.selector.value.decorator.FilteringValueSelector

      `accept, create, determineBailOutSize, endingIterator, getSize, getVariableDescriptor, isCountable, isNeverEnding, iterator, phaseEnded, phaseStarted, toString`

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

      `getCacheType, solvingEnded, solvingStarted, stepEnded, stepStarted`

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

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

      `phaseEnded, phaseStarted, stepEnded, stepStarted`

    - ### Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.Selector

      `getCacheType, isCountable, isNeverEnding`

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

      `solvingEnded, solvingStarted`

    - ### Methods inherited from interface org.optaplanner.core.impl.heuristic.selector.value.ValueSelector

      `endingIterator, getSize, getVariableDescriptor, iterator`

- - ### Constructor Detail

    - #### EntityIndependentFilteringValueSelector

          public EntityIndependentFilteringValueSelector​(EntityIndependentValueSelector childValueSelector,
                                                         List<SelectionFilter> filterList)

  - ### Method Detail

    - #### getSize

          public long getSize()

      Description copied from interface: `IterableSelector`
      A random JIT `Selector` with `Selector.isNeverEnding()` true should return a size as if it would be able to return each distinct element only once, because the size can be used in `SelectionProbabilityWeightFactory`.
      Specified by:
        `getSize` in interface `IterableSelector<Object>`
      Returns:
        the approximate number of elements generated by this `Selector`, always `>= 0`

    - #### iterator

          public Iterator<Object> iterator()

      Specified by:
        `iterator` in interface `Iterable<Object>`

    - #### determineBailOutSize

          protected long determineBailOutSize()