diff flys-aft/src/main/java/org/dive4elements/river/etl/aft/Rivers.java @ 5825:f529495f901d

moved directories to org.dive4elements.river.etl
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 11:42:54 +0200
parents flys-aft/src/main/java/org/dive4elements/etl/aft/Rivers.java@06643e440d1e
children 9438e9259213
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-aft/src/main/java/org/dive4elements/river/etl/aft/Rivers.java	Thu Apr 25 11:42:54 2013 +0200
@@ -0,0 +1,77 @@
+package de.intevation.aft;
+
+import de.intevation.db.ConnectedStatements;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+
+public class Rivers
+{
+    private static Logger log = Logger.getLogger(Rivers.class);
+
+    public Rivers() {
+    }
+
+    public boolean sync(SyncContext context) throws SQLException {
+
+        log.info("sync: rivers");
+
+        ConnectedStatements flysStatements = context.getFlysStatements();
+        ConnectedStatements aftStatements  = context.getAftStatements();
+
+        Map<String, River> flysRivers = new HashMap<String, River>();
+
+        ResultSet flysRs = flysStatements
+            .getStatement("select.rivers").executeQuery();
+
+        try {
+            while (flysRs.next()) {
+                int    id   = flysRs.getInt("id");
+                String name = flysRs.getString("name");
+                double from = flysRs.getDouble("min_km");
+                double to   = flysRs.getDouble("max_km");
+                flysRivers.put(name.toLowerCase(), new River(id, name, from, to));
+            }
+        }
+        finally {
+            flysRs.close();
+        }
+
+        List<River> commonRivers = new ArrayList<River>();
+
+        ResultSet aftRs = aftStatements
+            .getStatement("select.gewaesser").executeQuery();
+
+        try {
+            while (aftRs.next()) {
+                String name = aftRs.getString("NAME");
+                River river = flysRivers.get(name.toLowerCase());
+                if (river != null) {
+                    int id2 = aftRs.getInt("GEWAESSER_NR");
+                    river.setId2(id2);
+                    commonRivers.add(river);
+                }
+            }
+        }
+        finally {
+            aftRs.close();
+        }
+
+
+        boolean modified = false;
+
+        for (River river: commonRivers) {
+            modified |= river.sync(context);
+        }
+
+        return modified;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org