diff flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 3328:a41f279a66e2

Added parser and import classes to import MINFO sq relations. flys-backend/trunk@4646 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 13 Jun 2012 06:22:04 +0000
parents bf8d9a4f4cd4
children cc8fc6b29649
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Tue Jun 12 13:50:29 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Wed Jun 13 06:22:04 2012 +0000
@@ -16,6 +16,7 @@
 import de.intevation.flys.importer.parsers.PegelGltParser;
 import de.intevation.flys.importer.parsers.SedimentDensityParser;
 import de.intevation.flys.importer.parsers.SedimentYieldParser;
+import de.intevation.flys.importer.parsers.SQRelationParser;
 import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser;
 import de.intevation.flys.importer.parsers.WaterlevelParser;
 import de.intevation.flys.importer.parsers.WstParser;
@@ -96,6 +97,8 @@
 
     public static final String MINFO_WATERLEVEL_DIFF_DIR = "Wasserspiegeldifferenzen";
 
+    public static final String MINFO_SQ_DIR = "Feststofftransport-Abfluss-Beziehung";
+
 
     protected String name;
 
@@ -139,6 +142,8 @@
 
     protected List<ImportWaterlevelDifference> waterlevelDiffs;
 
+    protected List<ImportSQRelation> sqRelations;
+
     protected ImportWst wst;
 
     protected ImportUnit wstUnit;
@@ -162,6 +167,7 @@
         sedimentYields            = new ArrayList<ImportSedimentYield>();
         waterlevels               = new ArrayList<ImportWaterlevel>();
         waterlevelDiffs           = new ArrayList<ImportWaterlevelDifference>();
+        sqRelations               = new ArrayList<ImportSQRelation>();
     }
 
     public ImportRiver(
@@ -232,6 +238,7 @@
         parseSedimentYield();
         parseWaterlevels();
         parseWaterlevelDifferences();
+        parseSQRelation();
     }
 
     public void parseFloodProtection() throws IOException {
@@ -362,13 +369,13 @@
 
 
     protected void parseFlowVelocity() throws IOException {
-        log.debug("Parse flow velocity");
-
         if (Config.INSTANCE.skipFlowVelocity()) {
             log.info("skip parsing flow velocity");
             return;
         }
 
+        log.debug("Parse flow velocity");
+
         File minfoDir   = getMinfoDir();
         File flowDir    = new File(minfoDir, FLOW_VELOCITY_DIR);
         File modelDir   = new File(flowDir, FLOW_VELOCITY_MODEL);
@@ -521,6 +528,36 @@
     }
 
 
+    protected void parseSQRelation() throws IOException {
+        if (Config.INSTANCE.skipSQRelation()) {
+            log.info("skip sq relation");
+            return;
+        }
+
+        log.info("Parse sq relations");
+
+        File minfo = getMinfoDir();
+        File sqDir = new File(minfo, MINFO_SQ_DIR);
+
+        File[] files = sqDir.listFiles();
+
+        if (files == null) {
+            log.warn("Cannot read directory '" + sqDir + "'");
+            return;
+        }
+
+        SQRelationParser parser = new SQRelationParser();
+
+        for (File file: files) {
+            parser.parse(file);
+        }
+
+        sqRelations = parser.getSQRelations();
+
+        log.debug("Parsed " + sqRelations.size() + " SQ relations.");
+    }
+
+
     protected void parseBedHeightSingles(File dir) throws IOException {
         log.debug("Parse bed height singles");
 
@@ -892,6 +929,7 @@
         storeSedimentYield();
         storeWaterlevels();
         storeWaterlevelDifferences();
+        storeSQRelations();
     }
 
     public void storeWstUnit() {
@@ -1186,6 +1224,15 @@
     }
 
 
+    public void storeSQRelations() {
+        if (!Config.INSTANCE.skipSQRelation()) {
+            log.info("store sq relations");
+
+            // TODO
+        }
+    }
+
+
     public void storeAnnotations() {
         if (!Config.INSTANCE.skipAnnotations()) {
             River river = getPeer();

http://dive4elements.wald.intevation.org