## Uses of Interface
org.optaplanner.core.impl.phase.event.PhaseLifecycleListener

- Packages that use PhaseLifecycleListener
  Package | Description
  --- | ---
  org.optaplanner.core.impl.constructionheuristic |
  org.optaplanner.core.impl.constructionheuristic.placer |
  org.optaplanner.core.impl.exhaustivesearch |
  org.optaplanner.core.impl.heuristic.selector |
  org.optaplanner.core.impl.heuristic.selector.common |
  org.optaplanner.core.impl.heuristic.selector.entity |
  org.optaplanner.core.impl.heuristic.selector.entity.decorator |
  org.optaplanner.core.impl.heuristic.selector.entity.mimic |
  org.optaplanner.core.impl.heuristic.selector.entity.nearby |
  org.optaplanner.core.impl.heuristic.selector.entity.pillar |
  org.optaplanner.core.impl.heuristic.selector.move |
  org.optaplanner.core.impl.heuristic.selector.move.composite |
  org.optaplanner.core.impl.heuristic.selector.move.decorator |
  org.optaplanner.core.impl.heuristic.selector.move.factory |
  org.optaplanner.core.impl.heuristic.selector.move.generic |
  org.optaplanner.core.impl.heuristic.selector.move.generic.chained |
  org.optaplanner.core.impl.heuristic.selector.value |
  org.optaplanner.core.impl.heuristic.selector.value.chained |
  org.optaplanner.core.impl.heuristic.selector.value.decorator |
  org.optaplanner.core.impl.heuristic.selector.value.mimic |
  org.optaplanner.core.impl.heuristic.selector.value.nearby |
  org.optaplanner.core.impl.localsearch |
  org.optaplanner.core.impl.partitionedsearch |
  org.optaplanner.core.impl.phase |
  org.optaplanner.core.impl.phase.custom |
  org.optaplanner.core.impl.phase.event |
  org.optaplanner.core.impl.solver |
  org.optaplanner.core.impl.solver.recaller |
  org.optaplanner.core.impl.solver.termination |

- - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.constructionheuristic

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.constructionheuristic
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ConstructionHeuristicPhase<Solution_>` | A `ConstructionHeuristicPhase` is a `Phase` which uses a construction heuristic algorithm, such as First Fit, First Fit Decreasing, Cheapest Insertion, ...

    Classes in org.optaplanner.core.impl.constructionheuristic that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultConstructionHeuristicPhase<Solution_>` | Default implementation of `ConstructionHeuristicPhase`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.constructionheuristic.placer

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.constructionheuristic.placer
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `EntityPlacer<Solution_>` |

    Classes in org.optaplanner.core.impl.constructionheuristic.placer that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractEntityPlacer<Solution_>` | Abstract superclass for `EntityPlacer`.
    `class` | `PooledEntityPlacer<Solution_>` |
    `class` | `QueuedEntityPlacer<Solution_>` |
    `class` | `QueuedValuePlacer<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.exhaustivesearch

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.exhaustivesearch
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ExhaustiveSearchPhase<Solution_>` | A `ExhaustiveSearchPhase` is a `Phase` which uses an exhaustive algorithm, such as Brute Force.

    Classes in org.optaplanner.core.impl.exhaustivesearch that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultExhaustiveSearchPhase<Solution_>` | Default implementation of `ExhaustiveSearchPhase`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `IterableSelector<Solution_,​T>` |
    `interface` | `ListIterableSelector<Solution_,​T>` |
    `interface` | `Selector<Solution_>` | General interface for `MoveSelector`, `EntitySelector` and `ValueSelector` which generates `Move`s or parts of them.

    Classes in org.optaplanner.core.impl.heuristic.selector that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractSelector<Solution_>` | Abstract superclass for `Selector`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.common

    Classes in org.optaplanner.core.impl.heuristic.selector.common that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SelectionCacheLifecycleBridge<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `EntitySelector<Solution_>` | Selects instances of 1 `PlanningEntity` annotated class.

    Classes in org.optaplanner.core.impl.heuristic.selector.entity that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractEntitySelector<Solution_>` | Abstract superclass for `EntitySelector`.
    `class` | `FromSolutionEntitySelector<Solution_>` | This is the common `EntitySelector` implementation.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity.decorator

    Classes in org.optaplanner.core.impl.heuristic.selector.entity.decorator that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractCachingEntitySelector<Solution_>` |
    `class` | `CachingEntitySelector<Solution_>` | A `EntitySelector` that caches the result of its child `EntitySelector`.
    `class` | `FilteringEntitySelector<Solution_>` |
    `class` | `ProbabilityEntitySelector<Solution_>` |
    `class` | `SelectedCountLimitEntitySelector<Solution_>` |
    `class` | `ShufflingEntitySelector<Solution_>` |
    `class` | `SortingEntitySelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity.mimic

    Classes in org.optaplanner.core.impl.heuristic.selector.entity.mimic that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `MimicRecordingEntitySelector<Solution_>` |
    `class` | `MimicReplayingEntitySelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity.nearby

    Classes in org.optaplanner.core.impl.heuristic.selector.entity.nearby that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `NearEntityNearbyEntitySelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity.pillar

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.entity.pillar
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `PillarSelector<Solution_>` | A pillar is a `List` of entities that have the same planning value for each (or a subset) of their planning values.

    Classes in org.optaplanner.core.impl.heuristic.selector.entity.pillar that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultPillarSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `MoveSelector<Solution_>` | Generates `Move`s.

    Classes in org.optaplanner.core.impl.heuristic.selector.move that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractMoveSelector<Solution_>` | Abstract superclass for `MoveSelector`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move.composite

    Classes in org.optaplanner.core.impl.heuristic.selector.move.composite that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CartesianProductMoveSelector<Solution_>` | A `CompositeMoveSelector` that Cartesian products 2 or more `MoveSelector`s.
    `class` | `CompositeMoveSelector<Solution_>` | Abstract superclass for every composite `MoveSelector`.
    `class` | `UnionMoveSelector<Solution_>` | A `CompositeMoveSelector` that unions 2 or more `MoveSelector`s.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move.decorator

    Classes in org.optaplanner.core.impl.heuristic.selector.move.decorator that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractCachingMoveSelector<Solution_>` |
    `class` | `CachingMoveSelector<Solution_>` | A `MoveSelector` that caches the result of its child `MoveSelector`.
    `class` | `FilteringMoveSelector<Solution_>` |
    `class` | `ProbabilityMoveSelector<Solution_>` |
    `class` | `SelectedCountLimitMoveSelector<Solution_>` |
    `class` | `ShufflingMoveSelector<Solution_>` |
    `class` | `SortingMoveSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move.factory

    Classes in org.optaplanner.core.impl.heuristic.selector.move.factory that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `MoveIteratorFactoryToMoveSelectorBridge<Solution_>` | Bridges a `MoveIteratorFactory` to a `MoveSelector`.
    `class` | `MoveListFactoryToMoveSelectorBridge<Solution_>` | Bridges a `MoveListFactory` to a `MoveSelector`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move.generic

    Classes in org.optaplanner.core.impl.heuristic.selector.move.generic that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ChangeMoveSelector<Solution_>` |
    `class` | `GenericMoveSelector<Solution_>` | Abstract superclass for every generic `MoveSelector`.
    `class` | `PillarChangeMoveSelector<Solution_>` |
    `class` | `PillarSwapMoveSelector<Solution_>` |
    `class` | `SwapMoveSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.move.generic.chained

    Classes in org.optaplanner.core.impl.heuristic.selector.move.generic.chained that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `KOptMoveSelector<Solution_>` |
    `class` | `SubChainChangeMoveSelector<Solution_>` |
    `class` | `SubChainSwapMoveSelector<Solution_>` |
    `class` | `TailChainSwapMoveSelector<Solution_>` | Also known as a 2-opt move selector.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `EntityIndependentValueSelector<Solution_>` |
    `interface` | `ValueSelector<Solution_>` | Selects values from the `ValueRangeProvider` for a `PlanningVariable` annotated property.

    Classes in org.optaplanner.core.impl.heuristic.selector.value that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractValueSelector<Solution_>` | Abstract superclass for `ValueSelector`.
    `class` | `FromEntityPropertyValueSelector<Solution_>` | This is the common `ValueSelector` implementation.
    `class` | `FromSolutionPropertyValueSelector<Solution_>` | This is the common `ValueSelector` implementation.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value.chained

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value.chained
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `SubChainSelector<Solution_>` |

    Classes in org.optaplanner.core.impl.heuristic.selector.value.chained that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultSubChainSelector<Solution_>` | This is the common `SubChainSelector` implementation.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value.decorator

    Classes in org.optaplanner.core.impl.heuristic.selector.value.decorator that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractCachingValueSelector<Solution_>` |
    `class` | `CachingValueSelector<Solution_>` | A `ValueSelector` that caches the result of its child `ValueSelector`.
    `class` | `DowncastingValueSelector<Solution_>` |
    `class` | `EntityDependentSortingValueSelector<Solution_>` |
    `class` | `EntityIndependentFilteringValueSelector<Solution_>` |
    `class` | `EntityIndependentInitializedValueSelector<Solution_>` |
    `class` | `FilteringValueSelector<Solution_>` |
    `class` | `InitializedValueSelector<Solution_>` | Prevents creating chains without an anchor.
    `class` | `ProbabilityValueSelector<Solution_>` |
    `class` | `ReinitializeVariableValueSelector<Solution_>` | Prevents reassigning of already initialized variables during Construction Heuristics and Exhaustive Search.
    `class` | `SelectedCountLimitValueSelector<Solution_>` |
    `class` | `ShufflingValueSelector<Solution_>` |
    `class` | `SortingValueSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value.mimic

    Classes in org.optaplanner.core.impl.heuristic.selector.value.mimic that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `MimicRecordingValueSelector<Solution_>` |
    `class` | `MimicReplayingValueSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.heuristic.selector.value.nearby

    Classes in org.optaplanner.core.impl.heuristic.selector.value.nearby that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `NearEntityNearbyValueSelector<Solution_>` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.localsearch

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.localsearch
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `LocalSearchPhase<Solution_>` | A `LocalSearchPhase` is a `Phase` which uses a Local Search algorithm, such as `Tabu Search`, `Simulated Annealing`, `Late Acceptance`, ...

    Classes in org.optaplanner.core.impl.localsearch that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultLocalSearchPhase<Solution_>` | Default implementation of `LocalSearchPhase`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.partitionedsearch

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.partitionedsearch
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `PartitionedSearchPhase<Solution_>` | A `PartitionedSearchPhase` is a `Phase` which uses a Partition Search algorithm.

    Classes in org.optaplanner.core.impl.partitionedsearch that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultPartitionedSearchPhase<Solution_>` | Default implementation of `PartitionedSearchPhase`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.phase

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.phase
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `Phase<Solution_>` | A phase of a `Solver`.

    Classes in org.optaplanner.core.impl.phase that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractPhase<Solution_>` |
    `class` | `NoChangePhase<Solution_>` | A `NoChangePhase` is a `Phase` which does nothing.

    Methods in org.optaplanner.core.impl.phase with parameters of type PhaseLifecycleListener
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AbstractPhase.`addPhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` |
    `void` | Phase.`addPhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` | Add a `PhaseLifecycleListener` that is only notified of the `phase` and the `stepStarted(AbstractStepScope)` step} starting/ending events from this phase (and the `SolverLifecycleListener.solvingStarted(SolverScope)` solving} events too of course).
    `void` | AbstractPhase.`removePhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` |
    `void` | Phase.`removePhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.phase.custom

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.phase.custom
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `CustomPhase<Solution_>` | A `CustomPhase` is a `Phase` which uses `CustomPhaseCommand`s.

    Classes in org.optaplanner.core.impl.phase.custom that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DefaultCustomPhase<Solution_>` | Default implementation of `CustomPhase`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.phase.event

    Classes in org.optaplanner.core.impl.phase.event that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `PhaseLifecycleListenerAdapter<Solution_>` | An adapter for `PhaseLifecycleListener`.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.solver

    Methods in org.optaplanner.core.impl.solver with parameters of type PhaseLifecycleListener
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AbstractSolver.`addPhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` | Add a `PhaseLifecycleListener` that is notified of `SolverLifecycleListener.solvingStarted(SolverScope)` solving} events and also of the `phase` and the `stepStarted(AbstractStepScope)` step} starting/ending events of all phases.
    `void` | AbstractSolver.`removePhaseLifecycleListener​(PhaseLifecycleListener<Solution_> phaseLifecycleListener)` |

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.solver.recaller

    Classes in org.optaplanner.core.impl.solver.recaller that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BestSolutionRecaller<Solution_>` | Remembers the `best solution` that a `Solver` encounters.

  - ### Uses of PhaseLifecycleListener in org.optaplanner.core.impl.solver.termination

    Subinterfaces of PhaseLifecycleListener in org.optaplanner.core.impl.solver.termination
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `Termination<Solution_>` | A Termination determines when a `Solver` or a `Phase` should stop.

    Classes in org.optaplanner.core.impl.solver.termination that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractCompositeTermination<Solution_>` | Abstract superclass that combines multiple `Termination`s.
    `class` | `AbstractTermination<Solution_>` | Abstract superclass for `Termination`.
    `class` | `AndCompositeTermination<Solution_>` |
    `class` | `BasicPlumbingTermination<Solution_>` | Concurrency notes: Condition predicate on (`BasicPlumbingTermination.problemFactChangeQueue` is not empty or `BasicPlumbingTermination.terminatedEarly` is true).
    `class` | `BestScoreFeasibleTermination<Solution_>` |
    `class` | `BestScoreTermination<Solution_>` |
    `class` | `ChildThreadPlumbingTermination<Solution_>` |
    `class` | `OrCompositeTermination<Solution_>` |
    `class` | `PhaseToSolverTerminationBridge<Solution_>` |
    `class` | `ScoreCalculationCountTermination<Solution_>` |
    `class` | `StepCountTermination<Solution_>` |
    `class` | `TimeMillisSpentTermination<Solution_>` |
    `class` | `UnimprovedStepCountTermination<Solution_>` |
    `class` | `UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination<Solution_>` |
    `class` | `UnimprovedTimeMillisSpentTermination<Solution_>` |