Package org.optaplanner.core.impl.phase.event

## Interface PhaseLifecycleListener<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
  All Superinterfaces:
    `EventListener`, `SolverLifecycleListener<Solution_>`
  All Known Subinterfaces:
    `ConstructionHeuristicPhase<Solution_>`, `CustomPhase<Solution_>`, `EntityIndependentValueSelector`, `EntityPlacer`, `EntitySelector`, `ExhaustiveSearchPhase<Solution_>`, `IterableSelector<T>`, `ListIterableSelector<T>`, `LocalSearchPhase<Solution_>`, `MoveSelector`, `PartitionedSearchPhase<Solution_>`, `Phase<Solution_>`, `PillarSelector`, `Selector`, `SubChainSelector`, `Termination`, `ValueSelector`
  All Known Implementing Classes:
    `AbstractCachingEntitySelector`, `AbstractCachingMoveSelector`, `AbstractCachingValueSelector`, `AbstractCompositeTermination`, `AbstractEntitySelector`, `AbstractMoveSelector`, `AbstractPhase`, `AbstractSelector`, `AbstractTermination`, `AbstractValueSelector`, `AndCompositeTermination`, `BasicPlumbingTermination`, `BestScoreFeasibleTermination`, `BestScoreTermination`, `BestSolutionRecaller`, `CachingEntitySelector`, `CachingMoveSelector`, `CachingValueSelector`, `CartesianProductMoveSelector`, `ChangeMoveSelector`, `ChildThreadPlumbingTermination`, `CompositeMoveSelector`, `DefaultConstructionHeuristicPhase`, `DefaultCustomPhase`, `DefaultExhaustiveSearchPhase`, `DefaultLocalSearchPhase`, `DefaultPartitionedSearchPhase`, `DefaultPillarSelector`, `DefaultSubChainSelector`, `DowncastingValueSelector`, `EntityDependentSortingValueSelector`, `EntityIndependentFilteringValueSelector`, `EntityIndependentInitializedValueSelector`, `FilteringEntitySelector`, `FilteringMoveSelector`, `FilteringValueSelector`, `FromEntityPropertyValueSelector`, `FromSolutionEntitySelector`, `FromSolutionPropertyValueSelector`, `GenericMoveSelector`, `InitializedValueSelector`, `KOptMoveSelector`, `MimicRecordingEntitySelector`, `MimicRecordingValueSelector`, `MimicReplayingEntitySelector`, `MimicReplayingValueSelector`, `MoveIteratorFactoryToMoveSelectorBridge`, `MoveListFactoryToMoveSelectorBridge`, `NearEntityNearbyEntitySelector`, `NearEntityNearbyValueSelector`, `NoChangePhase`, `OrCompositeTermination`, `PhaseLifecycleListenerAdapter`, `PhaseToSolverTerminationBridge`, `PillarChangeMoveSelector`, `PillarSwapMoveSelector`, `PooledEntityPlacer`, `ProbabilityEntitySelector`, `ProbabilityMoveSelector`, `ProbabilityValueSelector`, `QueuedEntityPlacer`, `QueuedValuePlacer`, `ReinitializeVariableValueSelector`, `ScoreCalculationCountTermination`, `SelectedCountLimitEntitySelector`, `SelectedCountLimitMoveSelector`, `SelectedCountLimitValueSelector`, `SelectionCacheLifecycleBridge`, `ShufflingEntitySelector`, `ShufflingMoveSelector`, `ShufflingValueSelector`, `SortingEntitySelector`, `SortingMoveSelector`, `SortingValueSelector`, `StepCountTermination`, `SubChainChangeMoveSelector`, `SubChainSwapMoveSelector`, `SwapMoveSelector`, `TailChainSwapMoveSelector`, `TimeMillisSpentTermination`, `UnimprovedStepCountTermination`, `UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination`, `UnimprovedTimeMillisSpentTermination`, `UnionMoveSelector`

      public interface PhaseLifecycleListener<Solution_>
      extends SolverLifecycleListener<Solution_>

  See Also:
    `PhaseLifecycleListenerAdapter`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `phaseEnded​(AbstractPhaseScope<Solution_> phaseScope)` |
    `void` | `phaseStarted​(AbstractPhaseScope<Solution_> phaseScope)` |
    `void` | `stepEnded​(AbstractStepScope<Solution_> stepScope)` |
    `void` | `stepStarted​(AbstractStepScope<Solution_> stepScope)` |

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

      `solvingEnded, solvingStarted`

- - ### Method Detail

    - #### phaseStarted

          void phaseStarted​(AbstractPhaseScope<Solution_> phaseScope)

    - #### stepStarted

          void stepStarted​(AbstractStepScope<Solution_> stepScope)

    - #### stepEnded

          void stepEnded​(AbstractStepScope<Solution_> stepScope)

    - #### phaseEnded

          void phaseEnded​(AbstractPhaseScope<Solution_> phaseScope)