diff src/main/java/de/intevation/lada/importer/laf/LafObjectListener.java @ 1100:7683c4162746

Updated importer. * Fixed in grammar * More reporting * Fixed unit test
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 24 Oct 2016 11:52:17 +0200
parents 186d602e031a
children 2c198f13270b
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/importer/laf/LafObjectListener.java	Mon Oct 24 11:47:55 2016 +0200
+++ b/src/main/java/de/intevation/lada/importer/laf/LafObjectListener.java	Mon Oct 24 11:52:17 2016 +0200
@@ -19,6 +19,14 @@
     Map<String, List<ReportItem>> errors;
     List<ReportItem> currentErrors;
 
+    private boolean hasDatenbasis = false;
+    private boolean hasMessprogramm = false;
+    private boolean hasUmwelt = false;
+    private boolean hasZeitbasis = false;
+    private boolean hasUebertragungsformat = false;
+    private boolean hasVersion = false;
+
+
     public LafObjectListener() {
         data = new LafRawData();
         errors = new HashMap<String, List<ReportItem>>();
@@ -37,12 +45,26 @@
     }
 
     /**
+     * @return the hasUebertragungsformat
+     */
+    public boolean hasUebertragungsformat() {
+        return hasUebertragungsformat;
+    }
+
+    /**
+     * @return the hasVersion
+     */
+    public boolean hasVersion() {
+        return hasVersion;
+    }
+
+    /**
      * {@inheritDoc}
      *
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterProbendatei(LafParser.ProbendateiContext ctx) {
-        System.out.println("entering probe-datei");
+        System.out.println("start building raw data");
     }
 
     /**
@@ -51,6 +73,8 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void exitProbendatei(LafParser.ProbendateiContext ctx) {
+        System.out.println("finished.");
+        System.out.println("build " + data.count() + " proben.");
     }
 
     /**
@@ -61,12 +85,19 @@
     @Override public void enterEnd(LafParser.EndContext ctx) {
         if (currentProbe != null) {
             data.addProbe(currentProbe);
-            String identifier = currentProbe.getAttributes().get("PROBE_ID");
-            identifier = identifier == null ? currentProbe.getAttributes().get("PROBEN_NR") : null;
-            identifier = identifier == null ? currentProbe.getAttributes().get("HAUPTPROBEN_NR") : "not identified";
-            errors.put(identifier, currentErrors);
+            if (!currentErrors.isEmpty()) {
+                String identifier = currentProbe.getAttributes().get("PROBE_ID");
+                identifier = identifier == null ? currentProbe.getAttributes().get("PROBEN_NR") : null;
+                identifier = identifier == null ? currentProbe.getAttributes().get("HAUPTPROBEN_NR") : "not identified";
+                System.out.println("exit: " + identifier);
+                errors.put(identifier, currentErrors);
+            }
             currentErrors.clear();
             currentProbe = null;
+            hasDatenbasis = false;
+            hasMessprogramm = false;
+            hasUmwelt = false;
+            hasZeitbasis = false;
         }
     }
 
@@ -90,12 +121,23 @@
      */
     @Override public void exitProbe(LafParser.ProbeContext ctx) {
         data.addProbe(currentProbe);
-        String identifier = currentProbe.getAttributes().get("PROBE_ID");
-        identifier = identifier == null ? currentProbe.getAttributes().get("PROBEN_NR") : null;
-        identifier = identifier == null ? currentProbe.getAttributes().get("HAUPTPROBEN_NR") : "not identified";
-        errors.put(identifier, currentErrors);
+        if (!currentErrors.isEmpty()) {
+            for (ReportItem item : currentErrors) {
+                System.out.println("item: " + item.getKey());
+            }
+            String identifier = currentProbe.getAttributes().get("PROBE_ID");
+            identifier = identifier == null ? currentProbe.getAttributes().get("PROBEN_NR") : null;
+            identifier = identifier == null ? currentProbe.getAttributes().get("HAUPTPROBEN_NR") : null;
+            identifier = identifier == null ? "not identified" : identifier;
+            System.out.println("exit probe: " + identifier);
+            errors.put(identifier, currentErrors);
+        }
         currentErrors.clear();
         currentProbe = null;
+        hasDatenbasis = false;
+        hasMessprogramm = false;
+        hasUmwelt = false;
+        hasZeitbasis = false;
     }
 
     /**
@@ -286,7 +328,7 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterUebertragungsformat(LafParser.UebertragungsformatContext ctx) {
-        System.out.println(ctx.getChild(0) + ": " + ctx.getChild(1));
+        hasUebertragungsformat = true;
     }
 
     /**
@@ -295,7 +337,7 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterVersion(LafParser.VersionContext ctx) {
-        System.out.println(ctx.getChild(0) + ": " + ctx.getChild(1));
+        hasVersion = true;
     }
 
     /**
@@ -304,6 +346,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterDatenbasis(LafParser.DatenbasisContext ctx) {
+        if (this.hasDatenbasis) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         // Trim double qoutes.
         value = value.replaceAll("\"", "");
@@ -316,7 +361,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasDatenbasis = true;
     }
 
     /**
@@ -325,6 +370,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterDatenbasis_s(LafParser.Datenbasis_sContext ctx) {
+        if (this.hasDatenbasis) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.SI2)) {
@@ -336,7 +384,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasDatenbasis = true;
     }
 
     /**
@@ -356,7 +404,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -376,7 +423,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -396,7 +442,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -416,7 +461,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -436,7 +480,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -456,7 +499,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -476,7 +518,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -496,7 +537,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -519,7 +559,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -539,7 +578,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -559,7 +597,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -582,7 +619,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -591,6 +627,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterMessprogramm_c(LafParser.Messprogramm_cContext ctx) {
+        if (this.hasMessprogramm) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.C_STAR)) {
@@ -602,7 +641,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasMessprogramm = true;
     }
 
     /**
@@ -611,6 +650,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterMessprogramm_s(LafParser.Messprogramm_sContext ctx) {
+        if (this.hasMessprogramm) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.SC1)) {
@@ -622,7 +664,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasMessprogramm = true;
     }
 
     /**
@@ -642,7 +684,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -662,7 +703,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -682,7 +722,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -691,6 +730,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterZeitbasis(LafParser.ZeitbasisContext ctx) {
+        if (this.hasZeitbasis) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.C_STAR)) {
@@ -702,7 +744,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasZeitbasis = true;
     }
 
     /**
@@ -711,6 +753,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterZeitbasis_s(LafParser.Zeitbasis_sContext ctx) {
+        if (this.hasZeitbasis) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.SI1)) {
@@ -722,7 +767,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasZeitbasis = true;
     }
 
     /**
@@ -752,7 +797,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -782,7 +826,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -812,7 +855,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -842,7 +884,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -872,7 +913,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -881,6 +921,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterUmweltbereich_c(LafParser.Umweltbereich_cContext ctx) {
+        if (this.hasUmwelt) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.C_STAR)) {
@@ -892,7 +935,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasUmwelt = true;
     }
 
     /**
@@ -901,6 +944,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterUmweltbereich_s(LafParser.Umweltbereich_sContext ctx) {
+        if (this.hasUmwelt) {
+            return;
+        }
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.SC3)) {
@@ -912,7 +958,7 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
+        this.hasUmwelt = true;
     }
 
     /**
@@ -932,7 +978,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -952,7 +997,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -972,7 +1016,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1002,7 +1045,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -1022,7 +1064,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1042,7 +1083,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1062,7 +1102,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1082,7 +1121,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1103,7 +1141,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1124,7 +1161,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1145,7 +1181,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1166,7 +1201,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1187,7 +1221,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1208,7 +1241,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1249,7 +1281,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + art + " " + koord1 + " " + koord2);
     }
 
     /**
@@ -1290,7 +1321,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + art + " " + koord1 + " " + koord2);
     }
 
     /**
@@ -1311,7 +1341,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1332,7 +1361,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1341,10 +1369,9 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterU_nuts_code(LafParser.U_nuts_codeContext ctx) {
-        System.out.println(ctx.exception.getMessage());
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
-        if (!value.matches(LafDataTypes.I10)) {
+        if (!value.matches(LafDataTypes.C10)) {
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(value);
@@ -1354,7 +1381,6 @@
         }
         // TODO: Add to "ursprungsort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1375,7 +1401,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1396,7 +1421,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1417,7 +1441,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1438,7 +1461,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1459,7 +1481,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1480,7 +1501,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1521,7 +1541,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + art + " " + koord1 + " " + koord2);
     }
 
     /**
@@ -1562,7 +1581,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + art + " " + koord1 + " " + koord2);
     }
 
     /**
@@ -1583,7 +1601,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1604,7 +1621,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1615,7 +1631,7 @@
     @Override public void enterP_nuts_code(LafParser.P_nuts_codeContext ctx) {
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
-        if (!value.matches(LafDataTypes.I10)) {
+        if (!value.matches(LafDataTypes.C10)) {
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(value);
@@ -1625,7 +1641,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1646,7 +1661,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1667,7 +1681,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1679,7 +1692,6 @@
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.F10)) {
-            System.out.println("F10 does not match in hoehe_nn");
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(value);
@@ -1689,7 +1701,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1701,7 +1712,6 @@
         String value = ctx.getChild(1).toString();
         value = value.replaceAll("\"", "");
         if (!value.matches(LafDataTypes.F10)) {
-            System.out.println("F10 does not match in hoehe_land");
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(value);
@@ -1711,7 +1721,6 @@
         }
         // TODO: Add to "entnahmeort"
         //currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1731,7 +1740,6 @@
             return;
         }
         currentProbe.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1764,7 +1772,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), date + ' ' + time);
-        System.out.println(ctx.getChild(0) + ": " + date + ' ' + time);
     }
 
     /**
@@ -1787,7 +1794,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1810,7 +1816,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1833,7 +1838,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1856,7 +1860,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1879,7 +1882,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1902,7 +1904,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addAttribute(ctx.getChild(0).toString().toUpperCase(), value);
-        System.out.println(ctx.getChild(0) + ": " + value);
     }
 
     /**
@@ -1958,7 +1959,6 @@
         zusatzwert.put("EINHEIT", einheit);
         zusatzwert.put("MESSFEHLER", fehler);
         currentProbe.addZusatzwert(zusatzwert);
-        System.out.println("PZS: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2014,7 +2014,6 @@
         zusatzwert.put("EINHEIT_ID", einheit);
         zusatzwert.put("MESSFEHLER", fehler);
         currentProbe.addZusatzwert(zusatzwert);
-        System.out.println("PZS: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2033,7 +2032,6 @@
         String groesse = children.get(1);
         groesse = groesse.replaceAll("\"", "");
         if (!groesse.matches(LafDataTypes.C_STAR)) {
-            System.out.println("mw - groesse: " + groesse);
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(groesse);
@@ -2043,9 +2041,7 @@
         }
         String wert = children.get(2);
         wert = wert.replaceAll("\"", "");
-        System.out.println(wert);
         if (!wert.matches(LafDataTypes.F12)) {
-            System.out.println("mw: wert");
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(wert);
@@ -2056,7 +2052,6 @@
         String einheit = children.get(3);
         einheit = einheit.replaceAll("\"", "");
         if (!einheit.matches(LafDataTypes.C9)) {
-            System.out.println("mw: einheit");
             ReportItem err = new ReportItem();
             err.setKey(ctx.getChild(0).toString());
             err.setValue(einheit);
@@ -2065,11 +2060,10 @@
             return;
         }
         String fehler = null;
-        if (ctx.getChildCount() >= 8) {
+        if (ctx.getChildCount() >= 5) {
             fehler = children.get(4);
             fehler = fehler.replaceAll("\"", "");
             if (!fehler.matches(LafDataTypes.F9)) {
-            System.out.println("mw: fehler");
                 ReportItem err = new ReportItem();
                 err.setKey(ctx.getChild(0).toString());
                 err.setValue(fehler);
@@ -2087,7 +2081,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addMesswert(messwert);
-        System.out.println("GROESSE: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2155,7 +2148,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addMesswert(messwert);
-        System.out.println("GROESSE: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2224,7 +2216,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addMesswert(messwert);
-        System.out.println("GROESSE: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2293,7 +2284,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addMesswert(messwert);
-        System.out.println("GROESSE: " + groesse + " MW: " + wert);
     }
 
     /**
@@ -2303,7 +2293,72 @@
      */
     @Override public void enterMesswert_nwg(LafParser.Messwert_nwgContext ctx) {
         // C50* f12 c9 f9** f12
-        // TODO
+        List<String> children = new ArrayList<String>();
+        for (int i = 0; i < ctx.getChildCount(); i++) {
+            if (!ctx.getChild(i).toString().startsWith(" ")) {
+                children.add(ctx.getChild(i).toString());
+            }
+        }
+        String groesse = children.get(1);
+        groesse = groesse.replaceAll("\"", "");
+        if (!groesse.matches(LafDataTypes.C_STAR)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(groesse);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String wert = children.get(2);
+        wert = wert.replaceAll("\"", "");
+        if (!wert.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(wert);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String einheit = children.get(3);
+        einheit = einheit.replaceAll("\"", "");
+        if (!einheit.matches(LafDataTypes.C9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(einheit);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String fehler = children.get(4);
+        fehler = fehler.replaceAll("\"", "");
+        if (!fehler.matches(LafDataTypes.F9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(fehler);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String nwg = children.get(5);
+        nwg = nwg.replaceAll("\"", "");
+        if (!nwg.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(nwg);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        Map<String, String> messwert = new HashMap<String, String>();
+        messwert.put("MESSGROESSE", groesse);
+        messwert.put("MESSWERT", wert);
+        messwert.put("MEH", einheit);
+        messwert.put("MESSFEHLER", fehler);
+        messwert.put("NWG", nwg);
+        if (currentMessung == null) {
+            currentMessung = data.new Messung();
+        }
+        currentMessung.addMesswert(messwert);
     }
 
     /**
@@ -2312,7 +2367,73 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterMesswert_nwg_s(LafParser.Messwert_nwg_sContext ctx) {
-        // TODO
+        List<String> children = new ArrayList<String>();
+        for (int i = 0; i < ctx.getChildCount(); i++) {
+            if (!ctx.getChild(i).toString().startsWith(" ")) {
+                children.add(ctx.getChild(i).toString());
+            }
+        }
+        String groesse = children.get(1);
+        groesse = groesse.replaceAll("\"", "");
+        if (!groesse.matches(LafDataTypes.SI8)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(groesse);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String wert = children.get(2);
+        wert = wert.replaceAll("\"", "");
+        if (!wert.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(wert);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String einheit = children.get(3);
+        einheit = einheit.replaceAll("\"", "");
+        if (!einheit.matches(LafDataTypes.SI3)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(einheit);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String fehler = children.get(4);
+        fehler = fehler.replaceAll("\"", "");
+        if (!fehler.matches(LafDataTypes.F9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(fehler);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String nwg = children.get(5);
+        nwg = nwg.replaceAll("\"", "");
+        if (!nwg.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(nwg);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        // TODO: handle all values
+        Map<String, String> messwert = new HashMap<String, String>();
+        messwert.put("MESSGROESSE_ID", groesse);
+        messwert.put("MESSWERT", wert);
+        messwert.put("MEH_ID", einheit);
+        messwert.put("MESSFEHLER", fehler);
+        messwert.put("NWG", nwg);
+        if (currentMessung == null) {
+            currentMessung = data.new Messung();
+        }
+        currentMessung.addMesswert(messwert);
     }
 
     /**
@@ -2321,7 +2442,73 @@
      * <p>The default implementation does nothing.</p>
      */
     @Override public void enterMesswert_nwg_i(LafParser.Messwert_nwg_iContext ctx) {
-        // TODO
+        List<String> children = new ArrayList<String>();
+        for (int i = 0; i < ctx.getChildCount(); i++) {
+            if (!ctx.getChild(i).toString().startsWith(" ")) {
+                children.add(ctx.getChild(i).toString());
+            }
+        }
+        String groesse = children.get(1);
+        groesse = groesse.replaceAll("\"", "");
+        if (!groesse.matches(LafDataTypes.C_STAR)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(groesse);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String wert = children.get(2);
+        wert = wert.replaceAll("\"", "");
+        if (!wert.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(wert);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String einheit = children.get(3);
+        einheit = einheit.replaceAll("\"", "");
+        if (!einheit.matches(LafDataTypes.C9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(einheit);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String fehler = children.get(4);
+        fehler = fehler.replaceAll("\"", "");
+        if (!fehler.matches(LafDataTypes.F9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(fehler);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String nwg = children.get(5);
+        nwg = nwg.replaceAll("\"", "");
+        if (!nwg.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(nwg);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        // TODO: handle all values
+        Map<String, String> messwert = new HashMap<String, String>();
+        messwert.put("MESSGROESSE", groesse);
+        messwert.put("MESSWERT", wert);
+        messwert.put("MEH", einheit);
+        messwert.put("MESSFEHLER", fehler);
+        messwert.put("NWG", nwg);
+        if (currentMessung == null) {
+            currentMessung = data.new Messung();
+        }
+        currentMessung.addMesswert(messwert);
     }
 
     /**
@@ -2331,6 +2518,84 @@
      */
     @Override public void enterMesswert_nwg_g(LafParser.Messwert_nwg_gContext ctx) {
         // TODO
+        List<String> children = new ArrayList<String>();
+        for (int i = 0; i < ctx.getChildCount(); i++) {
+            if (!ctx.getChild(i).toString().startsWith(" ")) {
+                children.add(ctx.getChild(i).toString());
+            }
+        }
+        String groesse = children.get(1);
+        groesse = groesse.replaceAll("\"", "");
+        if (!groesse.matches(LafDataTypes.C_STAR)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(groesse);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String wert = children.get(2);
+        wert = wert.replaceAll("\"", "");
+        if (!wert.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(wert);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String einheit = children.get(3);
+        einheit = einheit.replaceAll("\"", "");
+        if (!einheit.matches(LafDataTypes.C9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(einheit);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String fehler = children.get(4);
+        fehler = fehler.replaceAll("\"", "");
+        if (!fehler.matches(LafDataTypes.F9)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(fehler);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String nwg = children.get(5);
+        nwg = nwg.replaceAll("\"", "");
+        if (!nwg.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(nwg);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        String gw = children.get(8);
+        gw = gw.replaceAll("\"", "");
+        if (!gw.matches(LafDataTypes.F12)) {
+            ReportItem err = new ReportItem();
+            err.setKey(ctx.getChild(0).toString());
+            err.setValue(gw);
+            err.setCode(670);
+            currentErrors.add(err);;
+            return;
+        }
+        // TODO: handle all values
+        Map<String, String> messwert = new HashMap<String, String>();
+        messwert.put("MESSGROESSE", groesse);
+        messwert.put("MESSWERT", wert);
+        messwert.put("MEH", einheit);
+        messwert.put("MESSFEHLER", fehler);
+        messwert.put("NWG", nwg);
+        messwert.put("GRENZWERT", gw);
+        if (currentMessung == null) {
+            currentMessung = data.new Messung();
+        }
+        currentMessung.addMesswert(messwert);
     }
 
     /**
@@ -2389,7 +2654,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addKommentar(kommentar);
-        System.out.println("KOMMENTAR: " + text);
     }
 
     /**
@@ -2414,7 +2678,6 @@
             currentMessung = data.new Messung();
         }
         currentMessung.addKommentar(kommentar);
-        System.out.println("KOMMENTAR: " + text);
     }
 
     /**
@@ -2470,7 +2733,6 @@
         kommentar.put("TIME", time);
         kommentar.put("TEXT", text);
         currentProbe.addKommentar(kommentar);
-        System.out.println("KOMMENTAR: " + text);
     }
 
     /**
@@ -2492,7 +2754,6 @@
         Map<String, String> kommentar = new HashMap<String, String>();
         kommentar.put("TEXT", text);
         currentProbe.addKommentar(kommentar);
-        System.out.println("KOMMENTAR: " + text);
     }
 
     /**
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)