Merge remote-tracking branch 'origin/unstable' into testing
[gpl/argeo-suite.git] / org.argeo.support.geonames / src / org / argeo / support / geonames / GeonamesAdm.java
diff --git a/org.argeo.support.geonames/src/org/argeo/support/geonames/GeonamesAdm.java b/org.argeo.support.geonames/src/org/argeo/support/geonames/GeonamesAdm.java
deleted file mode 100644 (file)
index d578272..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.argeo.support.geonames;
-
-import java.time.LocalDate;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-
-/** A Geonames administrative subdivision. */
-public class GeonamesAdm {
-       private final Long geonameId;
-       private final String countryCode;
-       private final String adminCode1;
-       private final String admLevel;
-       private final Integer level;
-       private final String name;
-       private final String asciiName;
-       private final List<String> alternateNames;
-       private final Double lat;
-       private final Double lng;
-       private final LocalDate lastUpdated;
-       private final ZoneId timeZone;
-
-       private final Long[] upperLevelIds = new Long[5];
-       private final List<GeonamesAdm> upperLevels = new ArrayList<>();
-
-       private List<String> row;
-
-       /** Initialise from a row in the main Geonames table. */
-       public GeonamesAdm(List<String> row) {
-               geonameId = Long.parseLong(row.get(0));
-               admLevel = row.get(7);
-               countryCode = row.get(8);
-               adminCode1 = row.get(10);
-               if (admLevel.startsWith("ADM")) {
-                       if (admLevel.endsWith("H"))
-                               level = Integer.parseInt(admLevel.substring(3, admLevel.length() - 1));
-                       else
-                               level = Integer.parseInt(admLevel.substring(3));
-               } else if (admLevel.equals("PCLI")) {
-                       level = 0;
-               } else {
-                       throw new IllegalArgumentException("Unsupported admin level " + admLevel);
-               }
-               name = row.get(1);
-               asciiName = row.get(2);
-               alternateNames = Arrays.asList(row.get(3).split(","));
-               lat = Double.parseDouble(row.get(4));
-               lng = Double.parseDouble(row.get(5));
-               lastUpdated = LocalDate.parse(row.get(18));
-               timeZone = ZoneId.of(row.get(17));
-               // upper levels
-               if (row.get(11) != null && !row.get(11).trim().equals(""))
-                       upperLevelIds[2] = Long.parseLong(row.get(11));
-               if (row.get(12) != null && !row.get(12).trim().equals(""))
-                       upperLevelIds[3] = Long.parseLong(row.get(12));
-               if (row.get(13) != null && !row.get(13).trim().equals(""))
-                       upperLevelIds[4] = Long.parseLong(row.get(13));
-               this.row = row;
-       }
-
-       public void mapUpperLevels(Map<Long, GeonamesAdm> index) {
-               for (int i = 0; i < level; i++) {
-                       Long geonameId = upperLevelIds[i];
-                       upperLevels.add(i, index.get(geonameId));
-               }
-       }
-
-       public Long getGeonameId() {
-               return geonameId;
-       }
-
-       public Integer getLevel() {
-               return level;
-       }
-
-       public String getName() {
-               return name;
-       }
-
-       public String getName(Function<String, String> transform) {
-               if (transform != null)
-                       return transform.apply(name);
-               else
-                       return name;
-
-       }
-
-       public String getAsciiName() {
-               return asciiName;
-       }
-
-       public List<String> getAlternateNames() {
-               return alternateNames;
-       }
-
-       public Double getLat() {
-               return lat;
-       }
-
-       public Double getLng() {
-               return lng;
-       }
-
-       public String getCountryCode() {
-               return countryCode;
-       }
-
-       public String getAdmLevel() {
-               return admLevel;
-       }
-
-       public List<String> getRow() {
-               return row;
-       }
-
-       public LocalDate getLastUpdated() {
-               return lastUpdated;
-       }
-
-       public ZoneId getTimeZone() {
-               return timeZone;
-       }
-
-       public String getAdminCode1() {
-               return adminCode1;
-       }
-
-       public Long[] getUpperLevelIds() {
-               return upperLevelIds;
-       }
-
-       public List<GeonamesAdm> getUpperLevels() {
-               return upperLevels;
-       }
-
-       @Override
-       public int hashCode() {
-               return geonameId.intValue();
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (!(obj instanceof GeonamesAdm))
-                       return false;
-               GeonamesAdm other = (GeonamesAdm) obj;
-               return geonameId.equals(other.geonameId);
-       }
-
-       @Override
-       public String toString() {
-               return name + " (ADM" + level + " " + geonameId + ")";
-       }
-
-}