code: private void fireNewCurrentSolution(SolutionType newCurrentSolution,
                                          Evaluation newCurrentSolutionEvaluation,
                                          Validation newCurrentSolutionValidation){
          for(SearchListener<? super SolutionType> l : getSearchListeners()){
              l.newCurrentSolution(this, newCurrentSolution,
                                         newCurrentSolutionEvaluation,
                                         newCurrentSolutionValidation);
          }
      }
docs: Calls {@link SearchListener#newCurrentSolution(LocalSearch, Solution, Evaluation, Validation)} on
  every attached search listener. Should only be executed when the search is active (initializing,
  running or terminating) and be fired exactly once for each update of the current solution.