diff --git a/pom.xml b/pom.xml
index afd25a1..9837588 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
com.fasterxml.jackson.core
jackson-databind
- 2.9.8
+ 2.13.1
com.itextpdf
@@ -57,5 +57,10 @@
commons-io
2.11.0
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+ 2.13.1
+
\ No newline at end of file
diff --git a/results.json b/results.json
new file mode 100644
index 0000000..57a673f
--- /dev/null
+++ b/results.json
@@ -0,0 +1 @@
+[{"cityName":"berlin","description":"overcast clouds","temperature":277.98,"pressure":999,"humidity":91},{"cityName":"tokyo","description":"clear sky","temperature":287.08,"pressure":1018,"humidity":60},{"cityName":"warsaw","description":"light snow","temperature":272.62,"pressure":1013,"humidity":89}]
\ No newline at end of file
diff --git a/results.pdf b/results.pdf
index fb3db02..91d31ed 100644
Binary files a/results.pdf and b/results.pdf differ
diff --git a/results.xml b/results.xml
new file mode 100644
index 0000000..cb647fa
--- /dev/null
+++ b/results.xml
@@ -0,0 +1,5 @@
+
+ -
+ vancouverovercast clouds275.68102692
+ - chicagomist285.39100192
+
\ No newline at end of file
diff --git a/src/main/java/model/ConvertResultPdf.java b/src/main/java/model/ConvertResultPdf.java
index 29da69e..5c7b924 100644
--- a/src/main/java/model/ConvertResultPdf.java
+++ b/src/main/java/model/ConvertResultPdf.java
@@ -1,4 +1,5 @@
package model;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
@@ -7,11 +8,13 @@ import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.util.List;
public class ConvertResultPdf {
private String inputFile;
private String outputFile;
+
public ConvertResultPdf(String inputFile, String outputFile) {
this.inputFile = inputFile;
this.outputFile = outputFile;
@@ -35,34 +38,4 @@ public class ConvertResultPdf {
e.printStackTrace();
}
}
-// public void convertToJson() {
-// try {
-// String txtData = new String(Files.readAllBytes(Paths.get(inputFile)));
-// String[] lines = txtData.split("\n");
-//
-// String cityName = lines[0].substring("city: ".length()).trim();
-// String description = lines[1].substring("description: ".length()).trim();
-//// double temperature = Double.parseDouble(lines[2].substring("temperature: ".length()).trim()
-//// .replace(",", "."));
-// double temperature = Double.parseDouble(lines[2].replaceAll("[^\\d.,]", "").replace(",", "."));
-// int pressure = Integer.parseInt(lines[3].substring("pressure: ".length()).trim().split(" ")[0]);
-// int humidity = Integer.parseInt(lines[4].substring("humidity: ".length()).trim().split(" ")[0]);
-//
-// ObjectMapper objectMapper = new ObjectMapper();
-// ArrayNode jsonArray = objectMapper.createArrayNode();
-// ObjectNode cityNode = JsonNodeFactory.instance.objectNode();
-//
-// cityNode.put("name", cityName);
-// cityNode.put("description", description);
-// cityNode.put("temperature", temperature);
-// cityNode.put("pressure", pressure);
-// cityNode.put("humidity", humidity);
-//
-// jsonArray.add(cityNode);
-//
-// objectMapper.writerWithDefaultPrettyPrinter().writeValue(new File(outputFile), jsonArray);
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
-// }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/model/weatherForecast.java b/src/main/java/model/weatherForecast.java
index 03dcfa3..7bf5eb9 100644
--- a/src/main/java/model/weatherForecast.java
+++ b/src/main/java/model/weatherForecast.java
@@ -1,9 +1,18 @@
package model;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+import com.itextpdf.text.Document;
+import com.itextpdf.text.Paragraph;
+import com.itextpdf.text.pdf.PdfWriter;
+
+import java.io.*;
import java.util.ArrayList;
import java.util.List;
-
+import java.io.BufferedReader;
+import java.io.FileOutputStream;
+import java.io.FileReader;
public class weatherForecast {
public static final List allEntries = new ArrayList<>();
@@ -36,18 +45,33 @@ public class weatherForecast {
return weatherForecastString;
}
+ public static void saveToJson(String outputFile) throws IOException {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.writeValue(new File(outputFile), allEntries);
+ }
+ public static void saveToXml(String outputFile) throws IOException {
+ XmlMapper xmlMapper = new XmlMapper();
+ xmlMapper.writeValue(new File(outputFile), allEntries);
+ }
-// public static void saveToJson() throws IOException {
-// File jsonFile = new File(generateFileName(".json"));
-// ObjectMapper mapper = new ObjectMapper();
-// mapper.writeValue(jsonFile, allEntries);
-// }
+ public static void convertToPdf(String inputFile, String outputFile) {
+ try (BufferedReader br = new BufferedReader(new FileReader(inputFile))) {
+ Document document = new Document();
+ PdfWriter.getInstance(document, new FileOutputStream(outputFile));
+ document.open();
-// public static void saveToXml() throws IOException {
-// File xmlFile = new File(generateFileName(".xml"));
-// XmlMapper mapper = new XmlMapper();
-// mapper.writeValue(xmlFile, allEntries);
-// }
+ String line;
+ while ((line = br.readLine()) != null) {
+ document.add(new Paragraph(line));
+ }
+
+ document.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
public static List getAllEntries() {
return new ArrayList<>(allEntries);
diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java
index 36a9648..b1382c1 100644
--- a/src/main/java/org/example/Main.java
+++ b/src/main/java/org/example/Main.java
@@ -74,33 +74,34 @@ public class Main {
System.out.println(forecastString);
// String forecastString = weatherString.prepareForecast(inputCity, response);
// System.out.println(forecastString);
-// temporaryFile.addToFile(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";
+ } 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;
+
+ weatherForecast.convertToPdf(temporaryFile.FILE_NAME, outputFile);
+
+ } else if (Objects.equals(whichFormat, "json")) {
+ String outputFile = "results.json";
+ weatherForecast.saveToJson(outputFile);
+ } else if (Objects.equals(whichFormat, "xml")) {
+ String outputFile = "results.xml";
+ weatherForecast.saveToXml(outputFile);
+ } else {
+ System.out.println("Wprowadz poprawna opcje.");
+ continue;
+ }
+ System.out.println("Program zakonczyl dzialanie.");
+ break;
} else if (Objects.equals(input,"x")) {
System.out.println("Program zakonczyl dzialanie.");
break;
diff --git a/temporary_file.txt b/temporary_file.txt
index e69de29..8c2b575 100644
--- a/temporary_file.txt
+++ b/temporary_file.txt
@@ -0,0 +1,18 @@
+city: chicago
+description: light rain
+temperature[K]: 285,44
+pressure[hPa]: 1001
+humidity[%]: 92
+--------------------
+city: chicago
+description: light rain
+temperature[K]: 285,44
+pressure[hPa]: 1001
+humidity[%]: 92
+--------------------
+city: chicago
+description: light rain
+temperature[K]: 285,44
+pressure[hPa]: 1001
+humidity[%]: 92
+--------------------