private LinkedList<WeatherInfo> collectWeatherInfo() { LinkedList<WeatherInfo> weatherInfos = new LinkedList<WeatherInfo>(); for (IWeatherProvider provider : providers) { for (City city : cities) { try { IWeatherData data = provider.getWeatherData(city); WeatherInfo weatherInfo = new WeatherInfo(data); weatherInfo.setCityId(city.getId()); weatherInfo.setProviderId(provider.getId()); weatherInfos.add(weatherInfo); } catch (WeatherProviderException e) { System.out.println( String.format( "Weather provider %s reported error: %s", provider.getId(), e.toString())); } } } return weatherInfos; }