package eirb.pg203.weather.fakeJSONFetcher; import eirb.pg203.weather.utils.FileResourcesUtils; import eirb.pg203.weather.utils.SplitQueryUrl; import eirb.pg203.weather.utils.JSONFetcher; import org.json.JSONArray; import org.json.JSONObject; import java.io.IOException; import java.net.URL; import java.util.HashMap; import java.util.Locale; import java.util.Map; public class FakeJSONFetcherCity extends JSONFetcher{ JSONObject unknownCity = FileResourcesUtils.getFileFromResourceAsJson("City/fakeCity.json"); private static HashMap cities(){ HashMap cities = new HashMap<>(); cities.put("bordeaux", eirb.pg203.weather.utils.FileResourcesUtils.getFileFromResourceAsJson("City/bordeaux.json")); cities.put("paris", eirb.pg203.weather.utils.FileResourcesUtils.getFileFromResourceAsJson("City/paris.json")); cities.put("unknown", eirb.pg203.weather.utils.FileResourcesUtils.getFileFromResourceAsJson("City/fakeCity.json")); return cities; } @Override public JSONObject fetch(URL url) throws IOException { Map params = SplitQueryUrl.splitQuery(url); String city = params.get("q").toLowerCase(Locale.ENGLISH); return cities().getOrDefault(city, unknownCity); } }