org.optaplanner.core.api.solver

## Interface SolverJob<Solution_,ProblemId_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
    `ProblemId_` - the ID type of a submitted problem, such as `Long` or `UUID`.
  All Known Implementing Classes:
    DefaultSolverJob

      public interface SolverJob<Solution_,ProblemId_>

  Represents a `problem` that has been submitted to solve on the `SolverManager`.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Solution_` | `getFinalBestSolution()` Waits if necessary for the solver to complete and then returns the final best `PlanningSolution`.
    `ProblemId_` | `getProblemId()`
    `SolverStatus` | `getSolverStatus()` Returns whether the `Solver` is scheduled to solve, actively solving or not.
    `void` | `terminateEarly()` Terminates the solver or cancels the solver job if it hasn't (re)started yet.

- - ### Method Detail

    - #### getProblemId

          ProblemId_ getProblemId()

      Returns:
        never null, a value given to `SolverManager.solve(Object, Function, Consumer)` or `SolverManager.solveAndListen(Object, Function, Consumer)`

    - #### getSolverStatus

          SolverStatus getSolverStatus()

      Returns whether the `Solver` is scheduled to solve, actively solving or not.

      Returns `SolverStatus.NOT_SOLVING` if the solver already terminated.

      Returns:
        never null

    - #### terminateEarly

          void terminateEarly()

      Terminates the solver or cancels the solver job if it hasn't (re)started yet.

      Does nothing if the solver already terminated.

    - #### getFinalBestSolution

          Solution_ getFinalBestSolution()
                                  throws InterruptedException,
                                         ExecutionException

      Waits if necessary for the solver to complete and then returns the final best `PlanningSolution`.
      Returns:
        never null, but it could be the original uninitialized problem
      Throws:
        `InterruptedException` - if the current thread was interrupted while waiting
        `ExecutionException` - if the computation threw an exception

Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.