Package org.optaplanner.core.impl.solver.termination

## Class AbstractTermination<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.solver.event.SolverLifecycleListenerAdapter<Solution_>
  - - org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerAdapter<Solution_>
    - - org.optaplanner.core.impl.solver.termination.AbstractTermination<Solution_>

- All Implemented Interfaces:
    `EventListener`, `PhaseLifecycleListener<Solution_>`, `SolverLifecycleListener<Solution_>`, `Termination<Solution_>`
  Direct Known Subclasses:
    `AbstractCompositeTermination`, `BasicPlumbingTermination`, `BestScoreFeasibleTermination`, `BestScoreTermination`, `ChildThreadPlumbingTermination`, `PhaseToSolverTerminationBridge`, `ScoreCalculationCountTermination`, `StepCountTermination`, `TimeMillisSpentTermination`, `UnimprovedStepCountTermination`, `UnimprovedTimeMillisSpentScoreDifferenceThresholdTermination`, `UnimprovedTimeMillisSpentTermination`

      public abstract class AbstractTermination<Solution_>
      extends PhaseLifecycleListenerAdapter<Solution_>
      implements Termination<Solution_>

  Abstract superclass for `Termination`.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected org.slf4j.Logger` | `logger` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractTermination()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Termination<Solution_>` | `createChildThreadTermination​(SolverScope<Solution_> solverScope, ChildThreadType childThreadType)` | Create a `Termination` for a child `Thread` of the `Solver`.

    - ### Methods inherited from class org.optaplanner.core.impl.phase.event.PhaseLifecycleListenerAdapter

      `phaseEnded, phaseStarted, stepEnded, stepStarted`

    - ### Methods inherited from class org.optaplanner.core.impl.solver.event.SolverLifecycleListenerAdapter

      `solvingEnded, solvingStarted`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.optaplanner.core.impl.phase.event.PhaseLifecycleListener

      `phaseEnded, phaseStarted, stepEnded, stepStarted`

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

      `solvingEnded, solvingStarted`

    - ### Methods inherited from interface org.optaplanner.core.impl.solver.termination.Termination

      `calculatePhaseTimeGradient, calculateSolverTimeGradient, isPhaseTerminated, isSolverTerminated`

- - ### Field Detail

    - #### logger

          protected final transient org.slf4j.Logger logger

  - ### Constructor Detail

    - #### AbstractTermination

          public AbstractTermination()

  - ### Method Detail

    - #### createChildThreadTermination

          public Termination<Solution_> createChildThreadTermination​(SolverScope<Solution_> solverScope,
                                                                     ChildThreadType childThreadType)

      Description copied from interface: `Termination`
      Create a `Termination` for a child `Thread` of the `Solver`.
      Specified by:
        `createChildThreadTermination` in interface `Termination<Solution_>`
      Parameters:
        `solverScope` - never null
        `childThreadType` - never null
      Returns:
        not null