Merge remote-tracking branch 'origin/master'
[Persons_Comparator.git] / src / Country.java
index c663ff0af66b22c2c8c9bdd22845f51cbb434d00..5a57362f07d6a2006ba07b75436d13cd426ac133 100644 (file)
@@ -1,17 +1,28 @@
-import javax.swing.*;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.List;
+import java.util.Scanner;
 
 public class Country {
     private String name;
     private String region;
     private double lat;
     private double lng;
-    private ImageIcon flag;
+    private String flag;
+    private String csvFile = "data/countries.csv";
 
-    public Country(String name, String region, double lat, double lng) {
+    public Country(String name, String region, double lat, double lng, String flag) {
         setName(name);
         setRegion(region);
         setLat(lat);
         setLng(lng);
+        setFlag(flag);
+    }
+
+    public Country(String name) {
+        setName(name);
+        loadCSVOneCountry(this.name);
+
     }
 
     public void setName(String name) {
@@ -30,10 +41,26 @@ public class Country {
         this.lat = lat;
     }
 
+    public double getLat() {
+        return lat;
+    }
+
     public void setLng(double lng) {
         this.lng = lng;
     }
 
+    public double getLng() {
+        return lng;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
     public int distanceTo(Country country) {
         if ((this.lat == country.lat) && (this.lng == country.lng)) {
             return 0;
@@ -49,6 +76,36 @@ public class Country {
         }
     }
 
+    public void loadCSVOneCountry(String name) {
+        Scanner scanner = null;
+        try {
+            scanner = new Scanner(new File(csvFile));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+        while (scanner.hasNext()) {
+            List<String> line = CSVUtils.parseLine(scanner.nextLine());
+            String countryList = line.get(0);
+            String[] countryArray = countryList.split(",");
+            String latLng = line.get(16);
+            String[] latLngArray = latLng.split(",");
+
+
+            if (countryArray[1].equals(name)) {
+                setRegion(line.get(12));
+                setLat(Double.parseDouble(latLngArray[0]));
+                setLng(Double.parseDouble(latLngArray[1]));
+            }
+        }
+        scanner.close();
+          /*Utils.displayArrayList(countryArrayListOceania);
+        Utils.displayArrayList(countryArrayListAfrica);
+        Utils.displayArrayList(countryArrayListAmericas);
+        Utils.displayArrayList(countryArrayListAsia);
+        Utils.displayArrayList(countryArrayListEurope);*/
+    }
+
+
     @Override
     public String toString() {
         return "Country{" +
@@ -56,6 +113,7 @@ public class Country {
                 ", region='" + region + '\'' +
                 ", lat=" + lat +
                 ", lng=" + lng +
+                ", flag=" + flag +
                 '}';
     }
 }