diff backend/src/main/java/org/dive4elements/river/importer/uinfo/parsers/VegetationParser.java @ 9401:361de818f76e

Added color fields to the vegetation zone database table and importer, max days field changed from exclusive to inclusive
author mschaefer
date Tue, 14 Aug 2018 14:02:26 +0200
parents df6f1b5806f6
children 6146358c4842
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/uinfo/parsers/VegetationParser.java	Tue Aug 14 11:06:00 2018 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/uinfo/parsers/VegetationParser.java	Tue Aug 14 14:02:26 2018 +0200
@@ -45,7 +45,10 @@
 
     private enum ColTitlePattern {
         OVERFLOW_LIMIT("((.)|(Ue))berflutungsdauer-bis\\s*\\[(.*)\\].*"), //
-        CLASSNO("Vegetationsklasse.*");
+        CLASSNO("Vegetationsklasse.*"), //
+        COLOR_R("Rot"), //
+        COLOR_G("Gr((.)|(ue))n"), //
+        COLOR_B("Blau");
 
         private final Pattern pattern;
 
@@ -153,13 +156,13 @@
             return true;
         }
         this.previousClassNo = 0;
-        this.previousDaysLimit = 0;
+        this.previousDaysLimit = -1;
         return true;
     }
 
     @Override
     protected VegetationZoneImport createKmLineImport(final Double km, final String[] values) {
-        int daysLimit = 365;
+        int daysLimit = 366;
         int classNo = 0;
         try {
             if (!values[this.cols.get(ColTitlePattern.OVERFLOW_LIMIT)].trim().isEmpty())
@@ -180,8 +183,11 @@
         // return null;
         // }
         this.previousClassNo = classNo;
-        final Integer minDays = Integer.valueOf(this.previousDaysLimit);
-        this.previousDaysLimit = daysLimit + 1;
-        return new VegetationZoneImport(classNo, minDays, Integer.valueOf(this.previousDaysLimit));
+        final int minDays = this.previousDaysLimit + 1;
+        this.previousDaysLimit = daysLimit;
+        final int red = (this.cols.get(ColTitlePattern.COLOR_R) >= 0) ? Integer.parseInt(values[this.cols.get(ColTitlePattern.COLOR_R)]) : 0;
+        final int green = (this.cols.get(ColTitlePattern.COLOR_G) >= 0) ? Integer.parseInt(values[this.cols.get(ColTitlePattern.COLOR_G)]) : 0;
+        final int blue = (this.cols.get(ColTitlePattern.COLOR_B) >= 0) ? Integer.parseInt(values[this.cols.get(ColTitlePattern.COLOR_B)]) : 0;
+        return new VegetationZoneImport(classNo, minDays, daysLimit, red, green, blue);
     }
 }

http://dive4elements.wald.intevation.org