@Override
    public void solve(DefaultSolverScope<Solution_> solverScope) {
        CustomPhaseScope<Solution_> phaseScope = new CustomPhaseScope<>(solverScope);
        phaseStarted(phaseScope);

        CustomStepScope<Solution_> stepScope = new CustomStepScope<>(phaseScope);
        for (CustomPhaseCommand<Solution_> customPhaseCommand : customPhaseCommandList) {
            solverScope.checkYielding();
            if (termination.isPhaseTerminated(phaseScope)) {
                break;
            }
            stepStarted(stepScope);
            doStep(stepScope, customPhaseCommand);
            stepEnded(stepScope);
            phaseScope.setLastCompletedStepScope(stepScope);
            stepScope = new CustomStepScope<>(phaseScope);
        }
        phaseEnded(phaseScope);
    }
@Override
    public void solve(DefaultSolverScope<Solution_> solverScope) {
        CustomPhaseScope<Solution_> phaseScope = new CustomPhaseScope<>(solverScope);
        phaseStarted(phaseScope);

        CustomStepScope<Solution_> stepScope = new CustomStepScope<>(phaseScope);
        for (CustomPhaseCommand<Solution_> customPhaseCommand : customPhaseCommandList) {
            solverScope.checkYielding();
            if (termination.isPhaseTerminated(phaseScope)) {
                break;
            }
            stepStarted(stepScope);
            doStep(stepScope, customPhaseCommand);
            stepEnded(stepScope);
            phaseScope.setLastCompletedStepScope(stepScope);
            stepScope = new CustomStepScope<>(phaseScope);
        }
        phaseEnded(phaseScope);
    }
@ Override public void solve ( DefaultSolverScope < Solution_ > solverScope ) { CustomPhaseScope < Solution_ > phaseScope = new CustomPhaseScope <> ( solverScope ) ; phaseStarted ( phaseScope ) ; CustomStepScope < Solution_ > stepScope = new CustomStepScope <> ( phaseScope ) ; for ( CustomPhaseCommand < Solution_ > customPhaseCommand : customPhaseCommandList ) { solverScope . checkYielding ( ) ; if ( termination . isPhaseTerminated ( phaseScope ) ) { break ; } stepStarted ( stepScope ) ; doStep ( stepScope , customPhaseCommand ) ; stepEnded ( stepScope ) ; phaseScope . setLastCompletedStepScope ( stepScope ) ; stepScope = new CustomStepScope <> ( phaseScope ) ; } phaseEnded ( phaseScope ) ; }
************************************************************************
************************************************************************