From 69dafbbf40dc2651b79f821f6a1cf2ade367d5af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Boris=20Bab=C4=8D=C3=A1k?= <boris.babcak@kosickaakademia.sk>
Date: Fri, 9 Feb 2024 12:36:24 +0100
Subject: [PATCH] addec class city

---
 CountryJSON                                   |  2 +-
 src/main/java/sk/kasv/babcak/worldx/City.java | 19 +++++++++++++++++++
 .../java/sk/kasv/babcak/worldx/Country.java   | 10 +++++-----
 .../java/sk/kasv/babcak/worldx/DataBase.java  |  9 ++++++---
 .../java/sk/kasv/babcak/worldx/WorldApp.java  |  2 +-
 .../sk/kasv/babcak/worldx/WriterJSON.java     |  4 ++--
 6 files changed, 34 insertions(+), 12 deletions(-)
 create mode 100644 src/main/java/sk/kasv/babcak/worldx/City.java

diff --git a/CountryJSON b/CountryJSON
index 034779e..46f15c2 100644
--- a/CountryJSON
+++ b/CountryJSON
@@ -1 +1 @@
-{"date":"2024-02-08","code3":"TUR","code2":"TR","name":"Turkey","capitalCity":"Ankara","citites":["Istanbul","Ankara","Izmir","Adana","Bursa","Gaziantep","Konya","Mersin (Içel)","Antalya","Diyarbakir","Kayseri","Eskisehir","Sanliurfa","Samsun","Malatya","Gebze","Denizli","Sivas","Erzurum","Tarsus","Kahramanmaras","Elâzig","Van","Sultanbeyli","Izmit (Kocaeli)","Manisa","Batman","Balikesir","Sakarya (Adapazari)","Iskenderun","Osmaniye","Çorum","Kütahya","Hatay (Antakya)","Kirikkale","Adiyaman","Trabzon","Ordu","Aydin","Usak","Edirne","Çorlu","Isparta","Karabük","Kilis","Alanya","Kiziltepe","Zonguldak","Siirt","Viransehir","Tekirdag","Karaman","Afyon","Aksaray","Ceyhan","Erzincan","Bismil","Nazilli","Tokat","Kars","Inegöl","Bandirma"]}
\ No newline at end of file
+{"date":"2024-02-09","code3":"TUR","code2":"TR","cities":["sk.kasv.babcak.worldx.City@548e6d58","sk.kasv.babcak.worldx.City@623a8092","sk.kasv.babcak.worldx.City@a1cdc6d","sk.kasv.babcak.worldx.City@175b9425","sk.kasv.babcak.worldx.City@3098cf3b","sk.kasv.babcak.worldx.City@610f7aa","sk.kasv.babcak.worldx.City@6a03bcb1","sk.kasv.babcak.worldx.City@21b2e768","sk.kasv.babcak.worldx.City@57250572","sk.kasv.babcak.worldx.City@5609159b","sk.kasv.babcak.worldx.City@2118cddf","sk.kasv.babcak.worldx.City@17a7f733","sk.kasv.babcak.worldx.City@68567e20","sk.kasv.babcak.worldx.City@76ed1b7c","sk.kasv.babcak.worldx.City@11fc564b","sk.kasv.babcak.worldx.City@394a2528","sk.kasv.babcak.worldx.City@6236eb5f","sk.kasv.babcak.worldx.City@7c1e2a9e","sk.kasv.babcak.worldx.City@fa36558","sk.kasv.babcak.worldx.City@672872e1","sk.kasv.babcak.worldx.City@32910148","sk.kasv.babcak.worldx.City@3f56875e","sk.kasv.babcak.worldx.City@2b4bac49","sk.kasv.babcak.worldx.City@fd07cbb","sk.kasv.babcak.worldx.City@3571b748","sk.kasv.babcak.worldx.City@3e96bacf","sk.kasv.babcak.worldx.City@484970b0","sk.kasv.babcak.worldx.City@4470f8a6","sk.kasv.babcak.worldx.City@7c83dc97","sk.kasv.babcak.worldx.City@7748410a","sk.kasv.babcak.worldx.City@740773a3","sk.kasv.babcak.worldx.City@37f1104d","sk.kasv.babcak.worldx.City@55740540","sk.kasv.babcak.worldx.City@60015ef5","sk.kasv.babcak.worldx.City@2f54a33d","sk.kasv.babcak.worldx.City@1018bde2","sk.kasv.babcak.worldx.City@65b3f4a4","sk.kasv.babcak.worldx.City@f2ff811","sk.kasv.babcak.worldx.City@568ff82","sk.kasv.babcak.worldx.City@50caa560","sk.kasv.babcak.worldx.City@2a266d09","sk.kasv.babcak.worldx.City@5ab9e72c","sk.kasv.babcak.worldx.City@186f8716","sk.kasv.babcak.worldx.City@1d8bd0de","sk.kasv.babcak.worldx.City@45ca843","sk.kasv.babcak.worldx.City@11c9af63","sk.kasv.babcak.worldx.City@757acd7b","sk.kasv.babcak.worldx.City@36b4fe2a","sk.kasv.babcak.worldx.City@574b560f","sk.kasv.babcak.worldx.City@ba54932","sk.kasv.babcak.worldx.City@28975c28","sk.kasv.babcak.worldx.City@3943a2be","sk.kasv.babcak.worldx.City@343570b7","sk.kasv.babcak.worldx.City@157853da","sk.kasv.babcak.worldx.City@71c3b41","sk.kasv.babcak.worldx.City@236e3f4e","sk.kasv.babcak.worldx.City@3cc1435c","sk.kasv.babcak.worldx.City@6bf0219d","sk.kasv.babcak.worldx.City@dd0c991","sk.kasv.babcak.worldx.City@5f16132a","sk.kasv.babcak.worldx.City@69fb6037","sk.kasv.babcak.worldx.City@36d585c"],"name":"Turkey","capitalCity":"Ankara"}
\ No newline at end of file
diff --git a/src/main/java/sk/kasv/babcak/worldx/City.java b/src/main/java/sk/kasv/babcak/worldx/City.java
new file mode 100644
index 0000000..069095d
--- /dev/null
+++ b/src/main/java/sk/kasv/babcak/worldx/City.java
@@ -0,0 +1,19 @@
+package sk.kasv.babcak.worldx;
+
+public class City {
+    private String name;
+    private int population;
+
+    public City(String name, int population) {
+        this.name = name;
+        this.population = population;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public int getPopulation() {
+        return population;
+    }
+}
diff --git a/src/main/java/sk/kasv/babcak/worldx/Country.java b/src/main/java/sk/kasv/babcak/worldx/Country.java
index 5b86403..31d1326 100644
--- a/src/main/java/sk/kasv/babcak/worldx/Country.java
+++ b/src/main/java/sk/kasv/babcak/worldx/Country.java
@@ -8,7 +8,7 @@ public class Country {
     private String code2;
     private String code3;
     private String capital;
-    List<String> list = new ArrayList<>();
+    List<City> list = new ArrayList<>();
 
     public String getName() {
         return name;
@@ -42,11 +42,11 @@ public class Country {
         this.capital = capital;
     }
 
-    public List<String> getList() {
+    public List<City> getList() {
         return list;
     }
 
-    public void setList(List<String> list) {
+    public void setList(List<City> list) {
         this.list = list;
     }
 
@@ -59,8 +59,8 @@ public class Country {
         System.out.println("<----------------------------------->");
         System.out.println("Country: "+name+" | "+"Code 2: "+code2+" | "+"Code 3: "+code3+" | "+"Capital: "+capital);
         System.out.println("List of cities: "+list.size());
-        for(String text:list){
-            System.out.println("> " + text);
+        for(City city:list){
+            System.out.println("> " + city.getName()+ " "+city.getPopulation());
         }
         System.out.println("<----------------------------------->");
     }
diff --git a/src/main/java/sk/kasv/babcak/worldx/DataBase.java b/src/main/java/sk/kasv/babcak/worldx/DataBase.java
index df9f7da..70d1025 100644
--- a/src/main/java/sk/kasv/babcak/worldx/DataBase.java
+++ b/src/main/java/sk/kasv/babcak/worldx/DataBase.java
@@ -8,7 +8,8 @@ public class DataBase {
     private static final String URL = "jdbc:mysql://localhost:3306/world_x";
     private static final String USER = "root";
     private static final String PASSWORD = "";
-    private static final String SELECT_CITIES = "SELECT Country.Name, City.name, Country.Code2" +
+    private static final String SELECT_CITIES =
+            "SELECT Country.Name, City.name, Country.Code2, Info->>\"$.Population\" Population" +
             " FROM City INNER JOIN country ON City.CountryCode = Country.Code" +
             " WHERE Country.Code LIKE ?";
     private static final String SELECT_CAPITAL = "SELECT City.name, Country.Code" +
@@ -30,7 +31,7 @@ public class DataBase {
     }
 
     private static void printCities(Connection conn, String code, Country country) throws SQLException {
-        List<String> cities = new ArrayList<>();
+        List<City> cities = new ArrayList<>();
 
         PreparedStatement ps = conn.prepareStatement(SELECT_CITIES);
         ps.setString(1, code);
@@ -40,9 +41,11 @@ public class DataBase {
 
         while (rs.next()) {
             countryName = rs.getString("Country.Name");
-            String city = rs.getString("City.Name");
+            String cityName = rs.getString("City.Name");
             code2 = rs.getString("Country.Code2");
+            int pop = rs.getInt("Population");
 
+            City city = new City(cityName,0);
             cities.add(city);
         }
         country.setList(cities);
diff --git a/src/main/java/sk/kasv/babcak/worldx/WorldApp.java b/src/main/java/sk/kasv/babcak/worldx/WorldApp.java
index b49cf92..cd87d9a 100644
--- a/src/main/java/sk/kasv/babcak/worldx/WorldApp.java
+++ b/src/main/java/sk/kasv/babcak/worldx/WorldApp.java
@@ -3,8 +3,8 @@ public class WorldApp {
 
     public static void main(String[] args) {
         DataBase db = new DataBase();
-        Country country = db.getCountry("TUR");
         WriterJSON writerJSON = new WriterJSON();
+        Country country = db.getCountry("TUR");
         writerJSON.createJSONdocument("CountryJSON", country);
         country.printCity();
     }
diff --git a/src/main/java/sk/kasv/babcak/worldx/WriterJSON.java b/src/main/java/sk/kasv/babcak/worldx/WriterJSON.java
index bddcbfc..5b3aa32 100644
--- a/src/main/java/sk/kasv/babcak/worldx/WriterJSON.java
+++ b/src/main/java/sk/kasv/babcak/worldx/WriterJSON.java
@@ -28,10 +28,10 @@ public class WriterJSON {
         object.put("code3", country.getCode3());
         object.put("capitalCity", country.getCapital());
         JSONArray jsonArray = new JSONArray();
-        for(String city: country.getList()){
+        for(City city: country.getList()){
             jsonArray.put(city);
         }
-        object.put("citites",jsonArray);
+        object.put("cities",jsonArray);
         object.put("date", Util.getDate());
         System.out.println(object.toString());
 
-- 
GitLab