## 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` |

    Classes in org.optaplanner.core.impl.constructionheuristic.placer that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `PooledEntityPlacer` |
    `class` | `QueuedEntityPlacer` |
    `class` | `QueuedValuePlacer` |

  - ### 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<T>` |
    `interface` | `ListIterableSelector<T>` |
    `interface` | `Selector` | 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` | 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` |

  - ### 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` | 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` | Abstract superclass for `EntitySelector`.
    `class` | `FromSolutionEntitySelector` | 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` |
    `class` | `CachingEntitySelector` | A `EntitySelector` that caches the result of its child `EntitySelector`.
    `class` | `FilteringEntitySelector` |
    `class` | `ProbabilityEntitySelector` |
    `class` | `SelectedCountLimitEntitySelector` |
    `class` | `ShufflingEntitySelector` |
    `class` | `SortingEntitySelector` |

  - ### 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` |
    `class` | `MimicReplayingEntitySelector` |

  - ### 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` |

  - ### 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` | 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` |

  - ### 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` | Generates `Move`s.

    Classes in org.optaplanner.core.impl.heuristic.selector.move that implement PhaseLifecycleListener
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractMoveSelector` | 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` | A `CompositeMoveSelector` that Cartesian products 2 or more `MoveSelector`s.
    `class` | `CompositeMoveSelector` | Abstract superclass for every composite `MoveSelector`.
    `class` | `UnionMoveSelector` | 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` |
    `class` | `CachingMoveSelector` | A `MoveSelector` that caches the result of its child `MoveSelector`.
    `class` | `FilteringMoveSelector` |
    `class` | `ProbabilityMoveSelector` |
    `class` | `SelectedCountLimitMoveSelector` |
    `class` | `ShufflingMoveSelector` |
    `class` | `SortingMoveSelector` |

  - ### 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` | Bridges a `MoveIteratorFactory` to a `MoveSelector`.
    `class` | `MoveListFactoryToMoveSelectorBridge` | 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` |
    `class` | `GenericMoveSelector` | Abstract superclass for every generic `MoveSelector`.
    `class` | `PillarChangeMoveSelector` |
    `class` | `PillarSwapMoveSelector` |
    `class` | `SwapMoveSelector` |

  - ### 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` |
    `class` | `SubChainChangeMoveSelector` |
    `class` | `SubChainSwapMoveSelector` |
    `class` | `TailChainSwapMoveSelector` | 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` |
    `interface` | `ValueSelector` | 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` | Abstract superclass for `ValueSelector`.
    `class` | `FromEntityPropertyValueSelector<Solution_>` | This is the common `ValueSelector` implementation.
    `class` | `FromSolutionPropertyValueSelector` | 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` |

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

  - ### 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` |
    `class` | `MimicReplayingValueSelector` |

  - ### 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` |

  - ### 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(DefaultSolverScope)` 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(DefaultSolverScope)` 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` | 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` | Abstract superclass that combines multiple `Termination`s.
    `class` | `AbstractTermination` | Abstract superclass for `Termination`.
    `class` | `AndCompositeTermination` |
    `class` | `BasicPlumbingTermination` | Concurrency notes: Condition predicate on (`BasicPlumbingTermination.problemFactChangeQueue` is not empty or `BasicPlumbingTermination.terminatedEarly` is true).
    `class` | `BestScoreFeasibleTermination` |
    `class` | `BestScoreTermination` |
    `class` | `ChildThreadPlumbingTermination` |
    `class` | `OrCompositeTermination` |
    `class` | `PhaseToSolverTerminationBridge` |
    `class` | `ScoreCalculationCountTermination` |
    `class` | `StepCountTermination` |
    `class` | `TimeMillisSpentTermination` |
    `class` | `UnimprovedStepCountTermination` |
    `class` | `UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination` |
    `class` | `UnimprovedTimeMillisSpentTermination` |