code: protected boolean updateCurrentAndBestSolution(SolutionType solution, Evaluation evaluation, Validation validation){
          // update current solution
          updateCurrentSolution(solution, evaluation, validation);
          // update best solution (only updates if solution is valid)
          return updateBestSolution(solution, evaluation, validation);
      }
docs: Update the current and best solution during search, given that the respective solution has already
  been evaluated and validated. The current solution is always updated, also if it is invalid. Conversely,
  the best solution is only updated if the given solution is valid and improves over the best solution
  found so far.
  
  @param solution new current solution
  @param evaluation evaluation of new current solution
  @param validation validation of new current solution
  @return <code>true</code> if the best solution has been updated