code: private void fireStatusChanged(SearchStatus newStatus){
          for(SearchListener<? super SolutionType> l : searchListeners){
              l.statusChanged(this, newStatus);
          }
      }
docs: Calls {@link SearchListener#statusChanged(Search, SearchStatus)} on every attached search listener.
  Should only be called exactly once for every status update.
  
  @param newStatus new search status