public void solvingEnded(DefaultSolverScope solverScope) {
   if (cacheType == SelectionCacheType.SOLVER) {
     selectionCacheLifecycleListener.disposeCache(solverScope);
   }
 }
 public void phaseEnded(AbstractPhaseScope phaseScope) {
   if (cacheType == SelectionCacheType.PHASE) {
     selectionCacheLifecycleListener.disposeCache(phaseScope.getSolverScope());
   }
 }
 public void stepEnded(AbstractStepScope stepScope) {
   if (cacheType == SelectionCacheType.STEP) {
     selectionCacheLifecycleListener.disposeCache(stepScope.getPhaseScope().getSolverScope());
   }
 }
 public void stepStarted(AbstractStepScope stepScope) {
   if (cacheType == SelectionCacheType.STEP) {
     selectionCacheLifecycleListener.constructCache(stepScope.getPhaseScope().getSolverScope());
   }
 }
 public void phaseStarted(AbstractPhaseScope phaseScope) {
   if (cacheType == SelectionCacheType.PHASE) {
     selectionCacheLifecycleListener.constructCache(phaseScope.getSolverScope());
   }
 }
 public void solvingStarted(DefaultSolverScope solverScope) {
   if (cacheType == SelectionCacheType.SOLVER) {
     selectionCacheLifecycleListener.constructCache(solverScope);
   }
 }