# Hierarchy For Package org.optaplanner.core.impl.heuristic.selector.move.composite

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - org.optaplanner.core.impl.AbstractFromConfigFactory<Solution_,​Config_>
    - org.optaplanner.core.impl.heuristic.selector.AbstractSelectorFactory<Solution_,​SelectorConfig_>
      - org.optaplanner.core.impl.heuristic.selector.move.AbstractMoveSelectorFactory<Solution_,​MoveSelectorConfig_> (implements org.optaplanner.core.impl.heuristic.selector.move.MoveSelectorFactory<Solution_>)
        - org.optaplanner.core.impl.heuristic.selector.move.composite.CartesianProductMoveSelectorFactory<Solution_>
        - org.optaplanner.core.impl.heuristic.selector.move.composite.UnionMoveSelectorFactory<Solution_>
  - org.optaplanner.core.impl.heuristic.selector.AbstractSelector<Solution_> (implements org.optaplanner.core.impl.heuristic.selector.Selector<Solution_>)
    - org.optaplanner.core.impl.heuristic.selector.move.AbstractMoveSelector<Solution_> (implements org.optaplanner.core.impl.heuristic.selector.move.MoveSelector<Solution_>)
      - org.optaplanner.core.impl.heuristic.selector.move.composite.CompositeMoveSelector<Solution_>
        - org.optaplanner.core.impl.heuristic.selector.move.composite.CartesianProductMoveSelector<Solution_>
        - org.optaplanner.core.impl.heuristic.selector.move.composite.UnionMoveSelector<Solution_>
  - org.optaplanner.core.impl.heuristic.selector.common.iterator.SelectionIterator<S> (implements java.util.Iterator<E>)
    - org.optaplanner.core.impl.heuristic.selector.move.composite.CartesianProductMoveSelector.RandomCartesianProductMoveIterator
    - org.optaplanner.core.impl.heuristic.selector.move.composite.UnionMoveSelector.RandomUnionMoveIterator
    - org.optaplanner.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator<S>
      - org.optaplanner.core.impl.heuristic.selector.move.composite.CartesianProductMoveSelector.OriginalCartesianProductMoveIterator