code: @Override
      protected void searchStep() {
          // more solutions to generate ?
          if(solutionIterator.hasNext()){
              // generate next solution
              SolutionType sol = solutionIterator.next();
              // update best solution
              updateBestSolution(sol);
          } else {
              // done
              stop();
          }
      }
docs: In every search step it is verified whether there are more solution to be generated using the solution iterator.
  If so, the next solution is generated, evaluated, and presented for comparison with the current best solution.
  Else, the search stops.