diff flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 2832:ac5bd90697c1

Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data. flys-backend/trunk@4250 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 17 Apr 2012 13:00:04 +0000
parents ac13e466a55e
children 163c037f2c7e
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Tue Apr 17 12:00:13 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Tue Apr 17 13:00:04 2012 +0000
@@ -26,6 +26,7 @@
 import de.intevation.flys.importer.parsers.BedHeightEpochParser;
 import de.intevation.flys.importer.parsers.BedHeightSingleParser;
 import de.intevation.flys.importer.parsers.FlowVelocityModelParser;
+import de.intevation.flys.importer.parsers.FlowVelocityMeasurementParser;
 import de.intevation.flys.importer.parsers.PRFParser;
 import de.intevation.flys.importer.parsers.HYKParser;
 import de.intevation.flys.importer.parsers.MorphologicalWidthParser;
@@ -115,6 +116,8 @@
 
     protected List<ImportFlowVelocityModel> flowVelocityModels;
 
+    protected List<ImportFlowVelocityMeasurement> flowVelocityMeasurements;
+
     protected ImportWst wst;
 
     protected ImportUnit wstUnit;
@@ -124,16 +127,17 @@
     protected River peer;
 
     public ImportRiver() {
-        hyks                = new ArrayList<ImportHYK>();
-        crossSections       = new ArrayList<ImportCrossSection>();
-        extraWsts           = new ArrayList<ImportWst>();
-        fixations           = new ArrayList<ImportWst>();
-        officialLines       = new ArrayList<ImportWst>();
-        floodWater          = new ArrayList<ImportWst>();
-        floodProtection     = new ArrayList<ImportWst>();
-        sedimentDensities   = new ArrayList<ImportSedimentDensity>();
-        morphologicalWidths = new ArrayList<ImportMorphWidth>();
-        flowVelocityModels  = new ArrayList<ImportFlowVelocityModel>();
+        hyks                      = new ArrayList<ImportHYK>();
+        crossSections             = new ArrayList<ImportCrossSection>();
+        extraWsts                 = new ArrayList<ImportWst>();
+        fixations                 = new ArrayList<ImportWst>();
+        officialLines             = new ArrayList<ImportWst>();
+        floodWater                = new ArrayList<ImportWst>();
+        floodProtection           = new ArrayList<ImportWst>();
+        sedimentDensities         = new ArrayList<ImportSedimentDensity>();
+        morphologicalWidths       = new ArrayList<ImportMorphWidth>();
+        flowVelocityModels        = new ArrayList<ImportFlowVelocityModel>();
+        flowVelocityMeasurements  = new ArrayList<ImportFlowVelocityMeasurement>();
     }
 
     public ImportRiver(
@@ -366,10 +370,15 @@
             log.warn("Cannot parse directory '" + measureDir + "'");
         }
         else {
-            // TODO
+            FlowVelocityMeasurementParser parser =
+                new FlowVelocityMeasurementParser();
+
             for (File measurement: measureFiles) {
                 log.debug("Parse file '" + measurement + "'");
+                parser.parse(measurement);
             }
+
+            flowVelocityMeasurements = parser.getMeasurements();
         }
     }
 
@@ -965,6 +974,18 @@
                     log.error("Error while storing flow velocity model.", cve);
                 }
             }
+
+            for (ImportFlowVelocityMeasurement m: flowVelocityMeasurements) {
+                try {
+                    m.storeDependencies(river);
+                }
+                catch (SQLException sqle) {
+                    log.error("Error while storing flow velocity measurement.", sqle);
+                }
+                catch (ConstraintViolationException cve) {
+                    log.error("Error while storing flow velocity measurement.", cve);
+                }
+            }
         }
     }
 

http://dive4elements.wald.intevation.org