From f49ad0ae3b0795e6e0207d6b8b0bd2acd6596380 Mon Sep 17 00:00:00 2001 From: Marcin Hutek Date: Sat, 9 Dec 2023 12:24:50 +0100 Subject: [PATCH] structure rebuild of forecast structure so it's contains string preparation and format conversion types --- results.pdf | Bin 0 -> 982 bytes src/main/java/model/ConvertResultPdf.java | 11 +- src/main/java/model/ForecastList.java | 2 - src/main/java/model/ForecastPreparation.java | 35 +++---- src/main/java/model/weatherForecast.java | 75 ++++++++++++++ src/main/java/org/example/Main.java | 100 ++++++++++--------- 6 files changed, 142 insertions(+), 81 deletions(-) create mode 100644 results.pdf delete mode 100644 src/main/java/model/ForecastList.java create mode 100644 src/main/java/model/weatherForecast.java diff --git a/results.pdf b/results.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fb3db0207c7d1b55d7a57227713ed6b0e1e4b499 GIT binary patch literal 982 zcmah|O=}ZD7#2a0rQTwtf-nf7jU}Cr-Az&{p=r{zrLC@;rfSnd_hS+_#@#wQDbbVE zV-chTMDe7}K|~SppufPQqGu1)YEPc@2RM_qrbN;AvNO;7`8@M()X3%Ict}&CpTE5O zs1SfaU{{rq5jaEr3cmudmV|k)#wmmOn#F03I)O{m>5wyOT~itl2e+BBMG}P<2o;V_ zZ4u+W{^}6^`Kjl4&z;EFhu7MMI(_C@WW!u%Z`1v@b2%2- z`FhVO7B?Q0?k+ShnG4O6-%nj_ExZ0B$6hOXnG4nHcycK}dfI5UTG4sh*Lrh5Hu`q_ z=~|?3x%hbf2#E1xTgvv~LkqVvM4`UBH=Q_1Hd=?(+>I3q4XZ-oEOk9=ENGOF@an@l zNNHpVnludR%%P!BARqW#elWly#7ql=S%FcXhd?T2ib_n}fV%6Kon=26zNcclpDY9m zb(_oP62WlH3TYdjq_tJbJ;#FMzEIZlEAXP{XZ+CHzo*mtb!D4_btR8bj8qpRU^wl$ zVM$UompUnWS4!66RxPNsB?!CcPIQ6|7PxhXvH@?7Hu!U(59vc#1y2Y allEntries = new ArrayList<>(); + private final String cityName; + private final String description; + private final double temperature; + private final int pressure; + private final int humidity; + + public weatherForecast(String cityName, String description, double temperature, + int pressure, int humidity) { + this.cityName = cityName; + this.description = description; + this.temperature = temperature; + this.pressure = pressure; + this.humidity = humidity; + allEntries.add(this); + } + + public String prepareForecastString() { + + String weatherForecastString = String.format(""" + city: %s + description: %s + temperature[K]: %.2f + pressure[hPa]: %d + humidity[%%]: %d + --------------------""", this.cityName, this.description, this.temperature, + this.pressure, this.humidity); + + return weatherForecastString; + } + +// public static void saveToJson() throws IOException { +// File jsonFile = new File(generateFileName(".json")); +// ObjectMapper mapper = new ObjectMapper(); +// mapper.writeValue(jsonFile, allEntries); +// } + +// public static void saveToXml() throws IOException { +// File xmlFile = new File(generateFileName(".xml")); +// XmlMapper mapper = new XmlMapper(); +// mapper.writeValue(xmlFile, allEntries); +// } + + public static List getAllEntries() { + return new ArrayList<>(allEntries); + } + + public String getCityName() { + return cityName; + } + + public String getDescription() { + return description; + } + + public double getTemperature() { + return temperature; + } + + public int getPressure() { + return pressure; + } + + public int getHumidity() { + return humidity; + } +} \ No newline at end of file diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java index 6618dc0..36a9648 100644 --- a/src/main/java/org/example/Main.java +++ b/src/main/java/org/example/Main.java @@ -1,31 +1,32 @@ package org.example; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +//import com.fasterxml.jackson.core.type.TypeReference; +//import com.fasterxml.jackson.databind.JsonNode; +//import com.fasterxml.jackson.databind.ObjectMapper; import model.*; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.CookieSpecRegistries; +//import org.apache.http.client.ClientProtocolException; +//import org.apache.http.client.methods.CloseableHttpResponse; +//import org.apache.http.client.methods.HttpUriRequest; +//import org.apache.http.impl.client.CloseableHttpClient; +//import org.apache.http.impl.client.CookieSpecRegistries; -import java.util.*; -import java.io.File; import java.io.IOException; -import java.sql.SQLOutput; -import java.util.List; +import java.util.*; +//import java.io.File; +//import java.io.IOException; +//import java.sql.SQLOutput; +//import java.util.List; import java.util.Objects; import java.util.Scanner; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; +//import org.apache.http.Header; +//import org.apache.http.HttpEntity; +//import org.apache.http.HttpResponse; +//import org.apache.http.client.methods.HttpGet; +//import org.apache.http.impl.client.HttpClients; +//import org.apache.http.util.EntityUtils; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { String API_key = "4c991761f17e10358c944a3c64a3e24c"; String fileCities = "cities.json"; @@ -44,8 +45,8 @@ public class Main { HttpClient httpClient = new HttpClient(); - WeatherString weatherString = new WeatherString(); - +// ForecastPreparation weatherString = new ForecastPreparation(); + ForecastPreparation forecastPreparation = new ForecastPreparation(); System.out.println("Program rozpoczal dzialanie."); while (true) { @@ -65,36 +66,41 @@ public class Main { String urlString = "https://api.openweathermap.org/data/2.5/weather?lat=" + latitude + "&lon=" + longitude + "&appid=" + API_key; String response = httpClient.executeGetRequest(urlString); -// System.out.println(response); - String forecastString = weatherString.forecastString(inputCity, response); +// System.out.println(response);] + + weatherForecast weatherForecast = forecastPreparation.fetchForecastData(inputCity, response); + + String forecastString = weatherForecast.prepareForecastString(); System.out.println(forecastString); - temporaryFile.addToFile(forecastString); +// String forecastString = weatherString.prepareForecast(inputCity, response); +// System.out.println(forecastString); +// temporaryFile.addToFile(forecastString); } else { System.out.println("Podanego miasta nie ma na liscie."); } - } else if (Objects.equals(input, "z")) { - System.out.println("W jakim formacie chcesz zapisac wyniki?\n pdf/json/xml"); - String whichFormat = scanner.nextLine().toLowerCase(); - if (Objects.equals(whichFormat, "pdf")) { - String outputFile = "results.pdf"; - ConvertResult convertResult = new ConvertResult(temporaryFile.FILE_NAME, - "results.pdf"); - convertResult.convertToPdf(); - } else if (Objects.equals(whichFormat, "json")) { - String outputFile = "results.json"; - ConvertResult convertResult = new ConvertResult(temporaryFile.FILE_NAME, - "results.json"); -// convertResult.convertToJson(); - } else if (Objects.equals(whichFormat, "xml")) { - String outputFile = "results.xml"; - ConvertResult convertResult = new ConvertResult(temporaryFile.FILE_NAME, - "results.xml"); -// convertResult.convertToXml(); - } else { - System.out.println("Wprowadz poprawna opcje."); - } - System.out.println("Program zakonczyl dzialanie."); - break; +// } else if (Objects.equals(input, "z")) { +// System.out.println("W jakim formacie chcesz zapisac wyniki?\n pdf/json/xml"); +// String whichFormat = scanner.nextLine().toLowerCase(); +// if (Objects.equals(whichFormat, "pdf")) { +// String outputFile = "results.pdf"; +// ConvertResultPdf convertResult = new ConvertResultPdf(temporaryFile.FILE_NAME, +// "results.pdf"); +// convertResult.convertToPdf(); +// } else if (Objects.equals(whichFormat, "json")) { +// String outputFile = "results.json"; +// ConvertResultPdf convertResult = new ConvertResultPdf(temporaryFile.FILE_NAME, +// "results.json"); +//// convertResult.convertToJson(); +// } else if (Objects.equals(whichFormat, "xml")) { +// String outputFile = "results.xml"; +// ConvertResultPdf convertResult = new ConvertResultPdf(temporaryFile.FILE_NAME, +// "results.xml"); +//// convertResult.convertToXml(); +// } else { +// System.out.println("Wprowadz poprawna opcje."); +// } +// System.out.println("Program zakonczyl dzialanie."); +// break; } else if (Objects.equals(input,"x")) { System.out.println("Program zakonczyl dzialanie."); break;