X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FCountry.java;h=5a57362f07d6a2006ba07b75436d13cd426ac133;hb=9e603249fe87bdda9cb9cfa84338e35ce360eb3b;hp=08c4da2a88fad39e7be1945a93f02bb4a998d7d1;hpb=5bdd299653b9c3f29a817a555ae6a17eac41b75b;p=Persons_Comparator.git diff --git a/src/Country.java b/src/Country.java index 08c4da2..5a57362 100644 --- a/src/Country.java +++ b/src/Country.java @@ -1,247 +1,119 @@ -import java.util.ArrayList; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.List; +import java.util.Scanner; public class Country { private String name; - ArrayList topLevelDomain = new ArrayList(); - private String alpha2Code; - private String alpha3Code; - ArrayList callingCodes = new ArrayList(); - private String capital; - ArrayList altSpellings = new ArrayList(); private String region; - private String subregion; - private float population; - ArrayList latlng = new ArrayList(); - private String demonym; - private float area; - private float gini; - ArrayList timezones = new ArrayList(); - ArrayList borders = new ArrayList(); - private String nativeName; - private String numericCode; - ArrayList currencies = new ArrayList(); - ArrayList languages = new ArrayList(); - Translations TranslationsObject; + private double lat; + private double lng; private String flag; - ArrayList regionalBlocs = new ArrayList(); - private String cioc; + private String csvFile = "data/countries.csv"; - public class Translations { - private String de; - private String es; - private String fr; - private String ja; - private String it; - private String br; - private String pt; - private String nl; - private String hr; - - - // Getter Methods - - public String getDe() { - return de; - } - - public String getEs() { - return es; - } - - public String getFr() { - return fr; - } - - public String getJa() { - return ja; - } - - public String getIt() { - return it; - } - - public String getBr() { - return br; - } - - public String getPt() { - return pt; - } - - public String getNl() { - return nl; - } - - public String getHr() { - return hr; - } - - - - // Setter Methods - - public void setDe(String de) { - this.de = de; - } - - public void setEs(String es) { - this.es = es; - } - - public void setFr(String fr) { - this.fr = fr; - } - - public void setJa(String ja) { - this.ja = ja; - } - - public void setIt(String it) { - this.it = it; - } - - public void setBr(String br) { - this.br = br; - } - - public void setPt(String pt) { - this.pt = pt; - } - - public void setNl(String nl) { - this.nl = nl; - } - - public void setHr(String hr) { - this.hr = hr; - } - - - } - - - // Getter Methods - - public String getName() { - return name; - } - - public String getAlpha2Code() { - return alpha2Code; - } - - public String getAlpha3Code() { - return alpha3Code; - } - - public String getCapital() { - return capital; - } - - public String getRegion() { - return region; - } - - public String getSubregion() { - return subregion; - } - - public float getPopulation() { - return population; - } - - public String getDemonym() { - return demonym; - } - - public float getArea() { - return area; - } - - public float getGini() { - return gini; - } - - public String getNativeName() { - return nativeName; - } - - public String getNumericCode() { - return numericCode; - } - - public Translations getTranslations() { - return TranslationsObject; + public Country(String name, String region, double lat, double lng, String flag) { + setName(name); + setRegion(region); + setLat(lat); + setLng(lng); + setFlag(flag); } - public String getFlag() { - return flag; - } + public Country(String name) { + setName(name); + loadCSVOneCountry(this.name); - public String getCioc() { - return cioc; } - // Setter Methods - public void setName(String name) { this.name = name; } - public void setAlpha2Code(String alpha2Code) { - this.alpha2Code = alpha2Code; - } - - public void setAlpha3Code(String alpha3Code) { - this.alpha3Code = alpha3Code; - } - - public void setCapital(String capital) { - this.capital = capital; + public String getName() { + return name; } public void setRegion(String region) { this.region = region; } - public void setSubregion(String subregion) { - this.subregion = subregion; - } - - public void setPopulation(float population) { - this.population = population; - } - - public void setDemonym(String demonym) { - this.demonym = demonym; - } - - public void setArea(float area) { - this.area = area; - } - - public void setGini(float gini) { - this.gini = gini; + public void setLat(double lat) { + this.lat = lat; } - public void setNativeName(String nativeName) { - this.nativeName = nativeName; + public double getLat() { + return lat; } - public void setNumericCode(String numericCode) { - this.numericCode = numericCode; + public void setLng(double lng) { + this.lng = lng; } - public void setTranslations(Translations translationsObject) { - this.TranslationsObject = translationsObject; + public double getLng() { + return lng; } public void setFlag(String flag) { this.flag = flag; } - public void setCioc(String cioc) { - this.cioc = cioc; + public String getFlag() { + return flag; + } + + public int distanceTo(Country country) { + if ((this.lat == country.lat) && (this.lng == country.lng)) { + return 0; + } else { + double theta = this.lng - country.lng; + Double dist = Math.sin(Math.toRadians(this.lat)) * Math.sin(Math.toRadians(country.lat)) + Math.cos(Math.toRadians(this.lat)) * Math.cos(Math.toRadians(country.lat)) * Math.cos(Math.toRadians(theta)); + dist = Math.acos(dist); + dist = Math.toDegrees(dist); + dist = dist * 60 * 1.1515; + // Kilometers + dist = dist * 1.609344; + return dist.intValue(); + } + } + + public void loadCSVOneCountry(String name) { + Scanner scanner = null; + try { + scanner = new Scanner(new File(csvFile)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + while (scanner.hasNext()) { + List 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{" + + "name='" + name + '\'' + + ", region='" + region + '\'' + + ", lat=" + lat + + ", lng=" + lng + + ", flag=" + flag + + '}'; } } -