Merge remote-tracking branch 'origin/unstable' into testing
[gpl/argeo-suite.git] / org.argeo.support.geonames / src / org / argeo / support / geonames / ImportGeonamesAdmin.java
diff --git a/org.argeo.support.geonames/src/org/argeo/support/geonames/ImportGeonamesAdmin.java b/org.argeo.support.geonames/src/org/argeo/support/geonames/ImportGeonamesAdmin.java
deleted file mode 100644 (file)
index 9af5987..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.argeo.support.geonames;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.argeo.util.CsvParser;
-import org.argeo.util.CsvWriter;
-
-/** Import GeoNames administrative division from the main table. */
-public class ImportGeonamesAdmin {
-       // private Log log = LogFactory.getLog(ImportGeonamesAdmin.class);
-       private Map<Long, GeonamesAdm> geonamesAdms = new HashMap<>();
-
-       /** Loads the data. */
-       public void parse(InputStream in) {
-               Map<String, Long> countryGeonameIds = new HashMap<>();
-               Map<String, Long> admin1GeonameIds = new HashMap<>();
-               CsvParser csvParser = new CsvParser() {
-
-                       @Override
-                       protected void processLine(Integer lineNumber, List<String> header, List<String> tokens) {
-                               if (!"A".equals(tokens.get(6)))
-                                       return;
-                               GeonamesAdm geonamesAdm = new GeonamesAdm(tokens);
-                               geonamesAdms.put(geonamesAdm.getGeonameId(), geonamesAdm);
-                               if (geonamesAdm.getAdmLevel().equals("PCLI"))
-                                       countryGeonameIds.put(geonamesAdm.getCountryCode(), geonamesAdm.getGeonameId());
-                               if (geonamesAdm.getAdmLevel().equals("ADM1"))
-                                       admin1GeonameIds.put(geonamesAdm.getAdminCode1(), geonamesAdm.getGeonameId());
-                       }
-               };
-               csvParser.setSeparator('\t');
-               csvParser.setNoHeader(true);
-               csvParser.parse(in, StandardCharsets.UTF_8);
-
-               // fill upper levels
-               for (GeonamesAdm adm : geonamesAdms.values()) {
-                       adm.getUpperLevelIds()[0] = countryGeonameIds.get(adm.getCountryCode());
-                       if (adm.getLevel() > 0)
-                               adm.getUpperLevelIds()[1] = admin1GeonameIds.get(adm.getAdminCode1());
-                       adm.mapUpperLevels(geonamesAdms);
-               }
-
-       }
-
-       public Map<Long, GeonamesAdm> getGeonamesAdms() {
-               return geonamesAdms;
-       }
-
-       /**
-        * Copies only the Geonames of feature class 'A' (administrative subdivisions).
-        */
-       public static void filterGeonamesAdm(InputStream in, OutputStream out) {
-               CsvWriter csvWriter = new CsvWriter(out, StandardCharsets.UTF_8);
-               csvWriter.setSeparator('\t');
-               CsvParser csvParser = new CsvParser() {
-
-                       @Override
-                       protected void processLine(Integer lineNumber, List<String> header, List<String> tokens) {
-                               if (tokens.size() < 7 || !"A".equals(tokens.get(6)))
-                                       return;
-                               csvWriter.writeLine(tokens);
-                       }
-               };
-               csvParser.setSeparator('\t');
-               csvParser.setNoHeader(true);
-               csvParser.parse(in, StandardCharsets.UTF_8);
-       }
-
-       public static void main(String[] args) throws IOException {
-//             String country = "allCountries";
-               String country = "CI";
-//             try (InputStream in = Files
-//                             .newInputStream(Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + ".txt"));
-//                             OutputStream out = Files.newOutputStream(
-//                                             Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + "-adm.txt"))) {
-//                     ImportGeonamesAdmin.filterGeonamesAdm(in, out);
-//             }
-               try (InputStream in = Files.newInputStream(
-                               Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + "-adm.txt"))) {
-                       ImportGeonamesAdmin importGeonamesAdmin = new ImportGeonamesAdmin();
-                       importGeonamesAdmin.parse(in);
-               }
-       }
-
-}