diff backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java @ 6366:cc21c197d204 double-precision

merged changes from default into double-precision branch
author Tom Gottfried <tom.gottfried@intevation.de>
date Tue, 18 Jun 2013 16:05:10 +0200
parents 6c41a4ca2876
children f275aae00c55
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java	Mon Jun 17 17:16:25 2013 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java	Tue Jun 18 16:05:10 2013 +0200
@@ -20,10 +20,13 @@
 
 import org.apache.log4j.Logger;
 
+import org.dive4elements.river.importer.ImportTimeInterval;
 import org.dive4elements.river.importer.ImportUnit;
 
 import org.dive4elements.river.importer.ImportWst;
+import org.dive4elements.river.importer.ImportWstQRange;
 import org.dive4elements.river.importer.ImportWstColumn;
+import org.dive4elements.river.importer.ImportWstColumnValue;
 
 
 /**
@@ -94,6 +97,17 @@
             differences.add(current);
         }
 
+        // For all differences columns, add a single Q-Range with
+        // 0.
+        for (ImportWstColumn column: columns) {
+            List<ImportWstColumnValue> cValues = column.getColumnValues();
+            column.addColumnQRange(
+                new ImportWstQRange(
+                    cValues.get(0).getPosition(),
+                    cValues.get(cValues.size() - 1).getPosition(),
+                    new BigDecimal(0d))
+                );
+        }
         current = null;
         columns = null;
     }
@@ -164,15 +178,20 @@
             String name = cols[i].replace("\"", "");
 
             log.debug("Create new column '" + name + "'");
-            current.getColumn(i).setName(name);
-            current.getColumn(i).setDescription(name);
+            ImportWstColumn column = current.getColumn(i);
+            column.setName(name);
+            column.setDescription(name);
 
             Matcher m = YEARS_IN_COLUMN.matcher(name);
 
             if (m.matches()) {
-                String startYear = m.group(1);
-                String endYear = m.group(2);
-                // TODO create and set ImportTimeInterval
+                int startYear = Integer.parseInt(m.group(1));
+                int endYear   = Integer.parseInt(m.group(2));
+                ImportTimeInterval time = new ImportTimeInterval(
+                    getStartDateFromYear(startYear),
+                    getEndDateFromYear(endYear)
+                );
+                column.setTimeInterval(time);
             } else {
                 log.debug("No time interval in column header found: " + name);
             }
@@ -180,6 +199,7 @@
     }
 
 
+    /** Handle one line of data, add one value for all columns. */
     private void handleDataLine(String line) {
         String[] cols = line.split(SEPERATOR_CHAR);
 

http://dive4elements.wald.intevation.org