Class UpcomingSelectionIterator<S>

java.lang.Object
org.optaplanner.core.impl.heuristic.selector.common.iterator.SelectionIterator<S>
org.optaplanner.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator<S>
Type Parameters:
S - Selection type, for example a Move class, an entity class or a value class.
All Implemented Interfaces:
Iterator<S>
Direct Known Subclasses:
AbstractOriginalChangeIterator, AbstractOriginalSwapIterator, AbstractRandomChangeIterator, AbstractRandomSwapIterator, CartesianProductMoveSelector.OriginalCartesianProductMoveIterator, FilteringEntitySelector.JustInTimeFilteringEntityIterator, FilteringValueSelector.JustInTimeFilteringValueIterator, InitializedValueSelector.JustInTimeInitializedValueIterator, OriginalListChangeIterator, OriginalListSwapIterator, RandomListChangeIterator, RandomListSwapIterator, UpcomingSelectionListIterator

public abstract class UpcomingSelectionIterator<S> extends SelectionIterator<S>
IMPORTANT: The constructor of any subclass of this abstract class, should never call any of its child Selector's Iterator.hasNext() or Iterator.next() methods, because that can cause descendant Selectors to be selected too early (which breaks MimicReplayingEntitySelector).
  • Field Details

    • upcomingCreated

      protected boolean upcomingCreated
    • hasUpcomingSelection

      protected boolean hasUpcomingSelection
    • upcomingSelection

      protected S upcomingSelection
  • Constructor Details

    • UpcomingSelectionIterator

      public UpcomingSelectionIterator()
  • Method Details

    • hasNext

      public boolean hasNext()
    • next

      public S next()
    • createUpcomingSelection

      protected abstract S createUpcomingSelection()
    • noUpcomingSelection

      protected S noUpcomingSelection()
    • toString

      public String toString()
      Overrides:
      toString in class Object