Package org.optaplanner.core.impl.solver
Class AbstractSolver<Solution_>
java.lang.Object
org.optaplanner.core.impl.solver.AbstractSolver<Solution_>
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Implemented Interfaces:
Solver<Solution_>
- Direct Known Subclasses:
DefaultSolver,PartitionSolver
Common code between
DefaultSolver and child solvers (such as PartitionSolver).
Do not create a new child Solver to implement a new heuristic or metaheuristic,
just use a new Phase for that.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BestSolutionRecaller<Solution_>protected final org.slf4j.Loggerprotected final Termination<Solution_> -
Constructor Summary
ConstructorsConstructorDescriptionAbstractSolver(BestSolutionRecaller<Solution_> bestSolutionRecaller, Termination<Solution_> solverTermination, List<Phase<Solution_>> phaseList) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEventListener(SolverEventListener<Solution_> eventListener) voidaddPhaseLifecycleListener(PhaseLifecycleListener<Solution_> phaseLifecycleListener) Add aPhaseLifecycleListenerthat is notified ofsolvingevents and also of thephaseand thestepstarting/ending events of all phases.voidphaseEnded(AbstractPhaseScope<Solution_> phaseScope) voidphaseStarted(AbstractPhaseScope<Solution_> phaseScope) voidremoveEventListener(SolverEventListener<Solution_> eventListener) voidremovePhaseLifecycleListener(PhaseLifecycleListener<Solution_> phaseLifecycleListener) protected voidrunPhases(SolverScope<Solution_> solverScope) voidsolvingEnded(SolverScope<Solution_> solverScope) voidsolvingError(SolverScope<Solution_> solverScope, Exception exception) voidsolvingStarted(SolverScope<Solution_> solverScope) voidstepEnded(AbstractStepScope<Solution_> stepScope) voidstepStarted(AbstractStepScope<Solution_> stepScope) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.optaplanner.core.api.solver.Solver
addProblemChange, addProblemChanges, addProblemFactChange, addProblemFactChanges, isEveryProblemChangeProcessed, isEveryProblemFactChangeProcessed, isSolving, isTerminateEarly, solve, terminateEarly
-
Field Details
-
logger
protected final transient org.slf4j.Logger logger -
bestSolutionRecaller
-
solverTermination
-
phaseList
-
-
Constructor Details
-
AbstractSolver
public AbstractSolver(BestSolutionRecaller<Solution_> bestSolutionRecaller, Termination<Solution_> solverTermination, List<Phase<Solution_>> phaseList)
-
-
Method Details
-
solvingStarted
-
runPhases
-
solvingEnded
-
solvingError
-
phaseStarted
-
phaseEnded
-
stepStarted
-
stepEnded
-
addEventListener
- Specified by:
addEventListenerin interfaceSolver<Solution_>- Parameters:
eventListener- never null
-
removeEventListener
- Specified by:
removeEventListenerin interfaceSolver<Solution_>- Parameters:
eventListener- never null
-
addPhaseLifecycleListener
Add aPhaseLifecycleListenerthat is notified ofsolvingevents and also of thephaseand thestepstarting/ending events of all phases.To get notified for only 1 phase, use
Phase.addPhaseLifecycleListener(PhaseLifecycleListener)instead.- Parameters:
phaseLifecycleListener- never null
-
removePhaseLifecycleListener
- Parameters:
phaseLifecycleListener- never null- See Also:
-
getBestSolutionRecaller
-
getPhaseList
-