diff backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java @ 8056:d86cc6a17b7a

Importer: Import sediment load at measurement stations.
author Tom Gottfried <tom@intevation.de>
date Fri, 18 Jul 2014 15:37:26 +0200
parents bd0dea643440
children bde5f5ec7c72
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java	Fri Jul 18 13:03:28 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/SedimentLoadLSParser.java	Fri Jul 18 15:37:26 2014 +0200
@@ -16,6 +16,8 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.log4j.Logger;
 
@@ -34,10 +36,16 @@
         Logger.getLogger(SedimentLoadLSParser.class);
 
 
+    public static final Pattern META_UNIT =
+        Pattern.compile("^Einheit: \\[(.*)\\].*");
+
+
     protected List<ImportSedimentLoadLS> sedimentLoadLSs;
 
     protected ImportSedimentLoadLS[] current;
 
+    protected ImportUnit unit;
+
 
     public SedimentLoadLSParser() {
         sedimentLoadLSs = new ArrayList<ImportSedimentLoadLS>();
@@ -65,6 +73,36 @@
 
 
     @Override
+    protected void handleMetaLine(String line) throws LineParserException {
+        if (handleMetaUnit(line)) {
+            return;
+        }
+        if (handleMetaFraction(line)) {
+            return;
+        }
+        if (handleMetaFractionName(line)) {
+            return;
+        }
+        if (handleColumnNames(line)) {
+            return;
+        }
+        log.warn("ASLP: Unknown meta line: '" + line + "'");
+    }
+
+
+    protected boolean handleMetaUnit(String line) {
+        Matcher m = META_UNIT.matcher(line);
+
+        if (m.matches()) {
+            unit = new ImportUnit(m.group(1));
+            return true;
+        }
+
+        return false;
+    }
+
+
+    @Override
     protected void handleDataLine(String line) {
         String[] vals = line.split(SEPERATOR_CHAR);
 

http://dive4elements.wald.intevation.org