Package org.optaplanner.core.impl.exhaustivesearch.decider

## Class ExhaustiveSearchDecider<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.exhaustivesearch.decider.ExhaustiveSearchDecider<Solution_>

- All Implemented Interfaces:
    `EventListener`, `ExhaustiveSearchPhaseLifecycleListener<Solution_>`, `SolverLifecycleListener<Solution_>`

      public class ExhaustiveSearchDecider<Solution_>
      extends Object
      implements ExhaustiveSearchPhaseLifecycleListener<Solution_>

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `assertExpectedUndoMoveScore` |
    `protected boolean` | `assertMoveScoreFromScratch` |
    `protected BestSolutionRecaller<Solution_>` | `bestSolutionRecaller` |
    `protected String` | `logIndentation` |
    `protected ManualEntityMimicRecorder<Solution_>` | `manualEntityMimicRecorder` |
    `protected MoveSelector<Solution_>` | `moveSelector` |
    `protected ScoreBounder` | `scoreBounder` |
    `protected boolean` | `scoreBounderEnabled` |
    `protected Termination<Solution_>` | `termination` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ExhaustiveSearchDecider​(String logIndentation, BestSolutionRecaller<Solution_> bestSolutionRecaller, Termination<Solution_> termination, ManualEntityMimicRecorder<Solution_> manualEntityMimicRecorder, MoveSelector<Solution_> moveSelector, boolean scoreBounderEnabled, ScoreBounder scoreBounder)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `expandNode​(ExhaustiveSearchStepScope<Solution_> stepScope)` |
    `ManualEntityMimicRecorder<Solution_>` | `getManualEntityMimicRecorder()` |
    `MoveSelector<Solution_>` | `getMoveSelector()` |
    `ScoreBounder` | `getScoreBounder()` |
    `boolean` | `isScoreBounderEnabled()` |
    `void` | `phaseEnded​(ExhaustiveSearchPhaseScope<Solution_> phaseScope)` |
    `void` | `phaseStarted​(ExhaustiveSearchPhaseScope<Solution_> phaseScope)` |
    `void` | `setAssertExpectedUndoMoveScore​(boolean assertExpectedUndoMoveScore)` |
    `void` | `setAssertMoveScoreFromScratch​(boolean assertMoveScoreFromScratch)` |
    `void` | `solvingEnded​(SolverScope<Solution_> solverScope)` |
    `void` | `solvingStarted​(SolverScope<Solution_> solverScope)` |
    `void` | `stepEnded​(ExhaustiveSearchStepScope<Solution_> stepScope)` |
    `void` | `stepStarted​(ExhaustiveSearchStepScope<Solution_> stepScope)` |

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

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

- - ### Field Detail

    - #### logIndentation

          protected final String logIndentation

    - #### bestSolutionRecaller

          protected final BestSolutionRecaller<Solution_> bestSolutionRecaller

    - #### termination

          protected final Termination<Solution_> termination

    - #### manualEntityMimicRecorder

          protected final ManualEntityMimicRecorder<Solution_> manualEntityMimicRecorder

    - #### moveSelector

          protected final MoveSelector<Solution_> moveSelector

    - #### scoreBounderEnabled

          protected final boolean scoreBounderEnabled

    - #### scoreBounder

          protected final ScoreBounder scoreBounder

    - #### assertMoveScoreFromScratch

          protected boolean assertMoveScoreFromScratch

    - #### assertExpectedUndoMoveScore

          protected boolean assertExpectedUndoMoveScore

  - ### Constructor Detail

    - #### ExhaustiveSearchDecider

          public ExhaustiveSearchDecider​(String logIndentation,
                                         BestSolutionRecaller<Solution_> bestSolutionRecaller,
                                         Termination<Solution_> termination,
                                         ManualEntityMimicRecorder<Solution_> manualEntityMimicRecorder,
                                         MoveSelector<Solution_> moveSelector,
                                         boolean scoreBounderEnabled,
                                         ScoreBounder scoreBounder)

  - ### Method Detail

    - #### getManualEntityMimicRecorder

          public ManualEntityMimicRecorder<Solution_> getManualEntityMimicRecorder()

    - #### getMoveSelector

          public MoveSelector<Solution_> getMoveSelector()

    - #### isScoreBounderEnabled

          public boolean isScoreBounderEnabled()

    - #### getScoreBounder

          public ScoreBounder getScoreBounder()

    - #### setAssertMoveScoreFromScratch

          public void setAssertMoveScoreFromScratch​(boolean assertMoveScoreFromScratch)

    - #### setAssertExpectedUndoMoveScore

          public void setAssertExpectedUndoMoveScore​(boolean assertExpectedUndoMoveScore)

    - #### solvingStarted

          public void solvingStarted​(SolverScope<Solution_> solverScope)

      Specified by:
        `solvingStarted` in interface `SolverLifecycleListener<Solution_>`

    - #### phaseStarted

          public void phaseStarted​(ExhaustiveSearchPhaseScope<Solution_> phaseScope)

      Specified by:
        `phaseStarted` in interface `ExhaustiveSearchPhaseLifecycleListener<Solution_>`

    - #### stepStarted

          public void stepStarted​(ExhaustiveSearchStepScope<Solution_> stepScope)

      Specified by:
        `stepStarted` in interface `ExhaustiveSearchPhaseLifecycleListener<Solution_>`

    - #### stepEnded

          public void stepEnded​(ExhaustiveSearchStepScope<Solution_> stepScope)

      Specified by:
        `stepEnded` in interface `ExhaustiveSearchPhaseLifecycleListener<Solution_>`

    - #### phaseEnded

          public void phaseEnded​(ExhaustiveSearchPhaseScope<Solution_> phaseScope)

      Specified by:
        `phaseEnded` in interface `ExhaustiveSearchPhaseLifecycleListener<Solution_>`

    - #### solvingEnded

          public void solvingEnded​(SolverScope<Solution_> solverScope)

      Specified by:
        `solvingEnded` in interface `SolverLifecycleListener<Solution_>`

    - #### expandNode

          public void expandNode​(ExhaustiveSearchStepScope<Solution_> stepScope)