class GenWeather extends Observable<GenWeather, Race, WeatherType> {

  private WeatherType currentWeather;

  public GenWeather() {
    currentWeather = WeatherType.SUNNY;
  }

  /**
   * Makes time pass for weather.
   */
  public void timePasses() {<FILL_FUNCTION_BODY>}
}

    var enumValues = WeatherType.values();
    currentWeather = enumValues[(currentWeather.ordinal() + 1) % enumValues.length];
    LOGGER.info("The weather changed to {}.", currentWeather);
    notifyObservers(currentWeather);
  
<methods>public void <init>() ,public void addObserver(com.iluwatar.observer.generic.Race) ,public void notifyObservers(com.iluwatar.observer.WeatherType) ,public void removeObserver(com.iluwatar.observer.generic.Race) <variables>protected final non-sealed List<com.iluwatar.observer.generic.Race> observers