code: public Forecast forecast(ForecastRequest request) throws ForecastException {
          notNull("The ForecastRequest cannot be null.", request);
          logger.log(FINE, "Executing Forecat request: {0}", request);
  
          try (InputStream is = executeForecastRequest(request)) {
              return mapper.readValue(is, Forecast.class);
  
          } catch (IOException e) {
              throw new ForecastException("Forecast cannot be fetched.", e);
          }
      }
docs: Returns the forecast as {@link Forecast} object parsed by Jackson.
  
  @param request The Forecast Request which is executed. Use
  {@link ForecastRequestBuilder} to build the request.
  @return The forecast parsed as {@link Forecast}.
  
  @throws ForecastException if the forecast cannot be fetched.