changeset 5209:850237ae9544

Remove dgm to sql converter. As this is imported directly by the geoimporter now. If you ever think you need this again type "man awk"
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 08 Mar 2013 17:44:12 +0100
parents fb0a5285fe26
children 908848b74d7e
files flys-backend/src/main/java/de/intevation/flys/utils/DgmSqlConverter.java
diffstat 1 files changed, 0 insertions(+), 483 deletions(-) [+]
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/utils/DgmSqlConverter.java	Fri Mar 08 17:13:00 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,483 +0,0 @@
-package de.intevation.flys.utils;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
-import au.com.bytecode.opencsv.CSVReader;
-
-
-/**
- * A converter for CSV files with DGM information. The result of a conversion
- * is an SQL file with "INSERT INTO dem ..." statements.
- * <br>
- * To start the converter, at least the following three system properties are
- * required:
- * <br>
- * <ul>
- * <ol><b>gew.dir</b>: This property must point to the directory where all
- * rivers are stored.</ol>
- * <ol><b>csv</b>: This property must point to the CSV file that contains the
- * DGM information.</ol>
- * <ol><b>sql</b>: This property must point to a (not yet existing) file that
- * will be generated by this converter.</ol>
- * </ul>
- * <br>
- * In addiation, the following properties are accepted to modify log messages,
- * etc.
- * <ul>
- * <ol><b>verbose</b>: Accepts integer values (0, 1, 2, 3) to modify the log
- * messages. The higher the value the more log messages are printed to STDOUT.
- * </ol>
- * <ol><b>full</b>: Accepts true|false values. If true is set, all rivers
- * included in the CSV file are taken into account while parsing. Otherwise,
- * the converter reads information for 'Saar', 'Mosel' and 'Eble' only.</ol>
- * </ul>
- *
- * @author Ingo Weinzierl <a href="mailto:ingo.weinzierl@intevation.de">
- * ingo.weinzierl@intevation.de</a>
- *
- */
-public class DgmSqlConverter {
-
-    public static final String SQL_INSERT = "INSERT INTO dem (river_id, name, lower, upper, year_from, year_to,"
-        + "projection, elevation_state, format, border_break, resolution, description, path) VALUES ("
-        + "%s, '%s', %s, %s, %s, %s, '%s', '%s', '%s', %s, '%s', '%s', '%s');";
-
-    public static final String SQL_SELECT_RIVER = "(SELECT id from rivers WHERE name = '%s')";
-
-    public static final char DEFAULT_SEPERATOR = ',';
-    public static final char DEFAULT_QUOTE = '"';
-    public static final int DEFAULT_LOG_LEVEL = 2;
-
-    public static final boolean FULL_MODE = Boolean.getBoolean("full");
-    public static final String GEW_DIR = System.getProperty("gew.dir", null);
-    public static final String CSV_FILE = System.getProperty("csv");
-    public static final String SQL_FILE = System.getProperty("sql");
-    public static final int LOG_LEVEL = Integer.getInteger("verbose",
-        DEFAULT_LOG_LEVEL);
-
-    public static final int MIN_COLUMN_COUNT = 15;
-
-    public static final int IDX_RIVERNAME = 0;
-    public static final int IDX_NAME = 12;
-    public static final int IDX_LOWER = 1;
-    public static final int IDX_UPPER = 2;
-    public static final int IDX_YEAR_FROM = 3;
-    public static final int IDX_YEAR_TO = 4;
-    public static final int IDX_PROJECTION = 7;
-    public static final int IDX_ELEVATION_STATE = 8;
-    public static final int IDX_FORMAT = 9;
-    public static final int IDX_BORDER_BREAK = 10;
-    public static final int IDX_RESOLUTION = 11;
-    public static final int IDX_DESCRIPTION = 14;
-    public static final int IDX_FILE_NAME = 5;
-    public static final int IDX_FILE_PATH = 6;
-
-    private class DGM {
-
-        public String river;
-        public String name;
-        public String projection;
-        public String elevationState;
-        public String format;
-        public String resolution;
-        public String description;
-        public String path;
-
-        public double lower;
-        public double upper;
-        public Integer yearFrom;
-        public Integer yearTo;
-
-        public boolean borderBreak;
-
-        public DGM() {
-            borderBreak = false;
-        }
-
-        public String toSQL() {
-            String riverId = String.format(SQL_SELECT_RIVER, river);
-            String lower = String.valueOf(this.lower);
-            String upper = String.valueOf(this.upper);
-            String yearFrom = this.yearFrom != null ? String
-                .valueOf(this.yearFrom) : "";
-            String yearTo = this.yearTo != null ? String.valueOf(this.yearTo)
-                : "";
-
-            return String.format(SQL_INSERT, riverId, name, lower, upper,
-                yearFrom, yearTo, projection, elevationState, format,
-                borderBreak, resolution, description, path);
-        }
-    }
-
-    private File riverDir;
-    private File csv;
-    private File sql;
-
-    private List<DGM> dgms;
-
-    public static void debug(String msg) {
-        if (LOG_LEVEL >= 3) {
-            System.out.println("DEBUG: " + msg);
-        }
-    }
-
-    public static void info(String msg) {
-        if (LOG_LEVEL >= 2) {
-            System.out.println("INFO: " + msg);
-        }
-    }
-
-    public static void warn(String msg) {
-        if (LOG_LEVEL >= 1) {
-            System.out.println("WARN: " + msg);
-        }
-    }
-
-    public static void error(String msg) {
-        System.out.println("ERROR: " + msg);
-    }
-
-    public static File getRiverDir(String[] args) {
-        if (GEW_DIR != null && GEW_DIR.length() > 0) {
-            return new File(GEW_DIR);
-        }
-        else if (args != null && args.length > 0) {
-            return new File(args[0]);
-        }
-
-        return null;
-    }
-
-    public static File getCSVFile(String[] args) {
-        if (CSV_FILE != null && CSV_FILE.length() > 0) {
-            return new File(CSV_FILE);
-        }
-        else if (args != null && args.length > 1) {
-            return new File(args[1]);
-        }
-
-        return null;
-    }
-
-    public static File getSQLFile(String[] args) {
-        if (SQL_FILE != null && SQL_FILE.length() > 0) {
-            return new File(SQL_FILE);
-        }
-        else if (args != null && args.length > 2) {
-            return new File(args[2]);
-        }
-
-        return null;
-    }
-
-    public static void main(String[] args) {
-        info("Start convering CSV -> SQL statements");
-
-        if (!FULL_MODE) {
-            info("You are running in DEMO mode; other rivers than 'Saar', 'Mosel' and 'Elbe' are ignored.");
-        }
-
-        File riverDir = getRiverDir(args);
-
-        if (riverDir == null) {
-            warn("No rivers directory specified!");
-            return;
-        }
-        else if (!riverDir.isDirectory()) {
-            warn("Specified rivers directory is not a directory!");
-            return;
-        }
-        else if (!riverDir.canRead()) {
-            warn("Unable to read '" + riverDir.toString() + "'");
-            return;
-        }
-
-        File csv = getCSVFile(args);
-
-        if (csv == null) {
-            warn("No CSV file specified!");
-            return;
-        }
-        else if (csv.isDirectory()) {
-            warn("Specified CSV file is a directory!");
-            return;
-        }
-        else if (!csv.canRead()) {
-            warn("Unable to read '" + csv.toString() + "'");
-            return;
-        }
-
-        File sql = getSQLFile(args);
-
-        if (sql == null) {
-            warn("No destination file specified!");
-            return;
-        }
-        else if (sql.isDirectory()) {
-            warn("Specified destination file is a directory!");
-            return;
-        }
-        else if (sql.exists() && !sql.canWrite()) {
-            warn("Unable to write to '" + sql.toString() + "'");
-            return;
-        }
-        else if (!sql.exists()) {
-            try {
-                sql.createNewFile();
-            }
-            catch (IOException ioe) {
-                warn("Unable to write to '" + sql.toString() + "'");
-                return;
-            }
-        }
-
-        info("Start parsing CSV file '" + csv.toString() + "'");
-
-        try {
-            DgmSqlConverter parser = new DgmSqlConverter(riverDir, csv, sql);
-            parser.read();
-            parser.write();
-        }
-        catch (Exception e) {
-            error("Unexpected error: " + e.getMessage());
-            e.printStackTrace();
-        }
-
-        info("Finished converting CSV -> SQL regularly.");
-    }
-
-    public DgmSqlConverter(File riverDir, File csv, File sql) {
-        this.riverDir = riverDir;
-        this.csv = csv;
-        this.sql = sql;
-        this.dgms = new ArrayList<DGM>();
-    }
-
-    public void read() {
-        info("Read DGM information from CSV file: " + csv.getAbsolutePath());
-
-        InputStream in = null;
-
-        try {
-            in = new BufferedInputStream(new FileInputStream(csv));
-        }
-        catch (FileNotFoundException e) {
-            error("File not found: " + e.getMessage());
-            return;
-        }
-
-        Reader reader = new InputStreamReader(in);
-        CSVReader csvReader = new CSVReader(reader, DEFAULT_SEPERATOR,
-            DEFAULT_QUOTE);
-
-        List<String[]> rows = new ArrayList<String[]>();
-
-        int success = 0;
-
-        try {
-            rows = csvReader.readAll();
-
-            for (int idx = 0; idx < rows.size(); idx++) {
-                String[] row = rows.get(idx);
-                if (readRow(row)) {
-                    success++;
-                }
-                else {
-                    warn("Unable to parse row " + (idx + 1));
-                }
-            }
-        }
-        catch (IOException e) {
-            error("Error while parsing CSV: " + e.getMessage());
-            return;
-        }
-
-        info("Parsed CSV file: " + rows.size() + " lines.");
-        info("Parsed " + success + " line successful");
-    }
-
-    private boolean readRow(String[] row) {
-        if (row == null) {
-            warn("Row is null!");
-            return false;
-        }
-
-        if (row.length < MIN_COLUMN_COUNT) {
-            warn("invalid column count: " + row.length);
-            return false;
-        }
-
-        StringBuffer rowBuffer = new StringBuffer();
-        for (String col : row) {
-            rowBuffer.append(col);
-            rowBuffer.append(" | ");
-        }
-        debug(rowBuffer.toString());
-
-        try {
-            DGM dgm = new DGM();
-            dgm.river = readRiver(row[IDX_RIVERNAME]);
-            dgm.name = row[IDX_NAME];
-            dgm.projection = row[IDX_PROJECTION];
-            dgm.elevationState = row[IDX_ELEVATION_STATE];
-            dgm.format = row[IDX_FORMAT];
-            dgm.resolution = row[IDX_RESOLUTION];
-            dgm.description = row[IDX_DESCRIPTION];
-            dgm.lower = readLower(row[IDX_LOWER]);
-            dgm.upper = readUpper(row[IDX_UPPER]);
-            dgm.yearFrom = readFromYear(row[IDX_YEAR_FROM]);
-            dgm.yearTo = readToYear(row[IDX_YEAR_TO]);
-            dgm.borderBreak = readBorderBreak(row[IDX_BORDER_BREAK]);
-            dgm.path = readPath(dgm.river, row[IDX_FILE_PATH],
-                row[IDX_FILE_NAME]);
-
-            dgms.add(dgm);
-
-            return true;
-        }
-        catch (IllegalArgumentException iae) {
-            warn(iae.getMessage());
-        }
-
-        return false;
-    }
-
-    private String readRiver(String rivername) throws IllegalArgumentException {
-        if (rivername == null || rivername.length() == 0) {
-            throw new IllegalAccessError("Invalid rivername: " + rivername);
-        }
-
-        if (!FULL_MODE
-            && !(rivername.equals("Saar") || rivername.equals("Mosel") || rivername
-                .equals("Elbe"))) {
-            throw new IllegalArgumentException("In DEMO mode; skip river: "
-                + rivername);
-        }
-
-        return rivername;
-    }
-
-    private Double readLower(String lower) throws IllegalArgumentException {
-        try {
-            return Double.valueOf(lower);
-        }
-        catch (NumberFormatException nfe) {
-        }
-
-        throw new IllegalArgumentException("Attribute 'lower' invalid: "
-            + lower);
-    }
-
-    private Double readUpper(String upper) throws IllegalArgumentException {
-        try {
-            return Double.valueOf(upper);
-        }
-        catch (NumberFormatException nfe) {
-        }
-
-        throw new IllegalArgumentException("Attribute 'upper' invalid: "
-            + upper);
-    }
-
-    private Integer readFromYear(String from) throws IllegalArgumentException {
-        try {
-            return Integer.valueOf(from);
-        }
-        catch (NumberFormatException nfe) {
-        }
-
-        return null;
-    }
-
-    private Integer readToYear(String to) throws IllegalArgumentException {
-        try {
-            return Integer.valueOf(to);
-        }
-        catch (NumberFormatException nfe) {
-        }
-
-        return null;
-    }
-
-    private String readPath(String rivername, String dir, String filename)
-        throws IllegalArgumentException {
-        File riverDir = new File(this.riverDir, rivername);
-        File dgmDir = new File(riverDir, dir);
-        File dgmFile = new File(dgmDir, filename);
-
-        try {
-            debug("Path of DGM = " + dgmFile.getAbsolutePath());
-
-            if (dgmFile == null || !dgmFile.exists()) {
-                throw new IllegalAccessError(
-                    "Specified DGM file does not exist: "
-                        + dgmFile.getAbsolutePath());
-            }
-
-            if (!dgmFile.isFile()) {
-                throw new IllegalArgumentException(
-                    "Specified DGM file is no file: "
-                        + dgmFile.getAbsolutePath());
-            }
-        }
-        catch (IllegalAccessError iae) {
-            throw new IllegalArgumentException("Cannot find DGM file (river="
-                + rivername + " | directory=" + dir + " | filename=" + filename
-                + ")");
-        }
-
-        return dgmFile.getAbsolutePath();
-    }
-
-    private boolean readBorderBreak(String borderBreak) {
-        if (borderBreak == null || borderBreak.length() == 0) {
-            return true;
-        }
-        else if (borderBreak.toLowerCase().equals("ja")) {
-            return true;
-        }
-        else if (borderBreak.toLowerCase().equals("nein")) {
-            return false;
-        }
-        else {
-            return true;
-        }
-    }
-
-    public void write() {
-        info("Write DEM information to SQL file: " + sql.getAbsolutePath());
-
-        BufferedWriter bufferedWriter = null;
-        try {
-            bufferedWriter = new BufferedWriter(new FileWriter(sql));
-
-            for (DGM dgm : dgms) {
-                bufferedWriter.write(dgm.toSQL());
-                bufferedWriter.newLine();
-            }
-        }
-        catch (IOException ioe) {
-            error(ioe.getMessage());
-        }
-        finally {
-            if (bufferedWriter != null) {
-                try {
-                    bufferedWriter.close();
-                }
-                catch (IOException ioe) {
-                }
-            }
-        }
-    }
-}

http://dive4elements.wald.intevation.org