public void phaseEnded(BruteForceSolverPhaseScope bruteForceSolverPhaseScope) {
   super.phaseEnded(bruteForceSolverPhaseScope);
   bruteForceEntityWalker.phaseEnded(bruteForceSolverPhaseScope);
   logger.info(
       "Phase brute force finished: step total ({}), time spend ({}), best score ({}).",
       new Object[] {
         bruteForceSolverPhaseScope.getLastCompletedStepScope().getStepIndex() + 1,
         bruteForceSolverPhaseScope.calculateSolverTimeMillisSpend(),
         bruteForceSolverPhaseScope.getBestScore()
       });
 }
 public void stepTaken(BruteForceStepScope bruteForceStepScope) {
   super.stepTaken(bruteForceStepScope);
   bruteForceEntityWalker.stepTaken(bruteForceStepScope);
   BruteForceSolverPhaseScope bruteForceSolverPhaseScope =
       bruteForceStepScope.getBruteForceSolverPhaseScope();
   // TODO The steps are too fine, so debug log is too much. Yet we still want some debug
   // indication
   logger.debug(
       "    Step index ({}), time spend ({}), score ({}), {} best score ({}).",
       new Object[] {
         bruteForceStepScope.getStepIndex(),
         bruteForceSolverPhaseScope.calculateSolverTimeMillisSpend(),
         bruteForceStepScope.getScore(),
         (bruteForceStepScope.getBestScoreImproved() ? "new" : "   "),
         bruteForceSolverPhaseScope.getBestScore()
       });
 }