[Dive4elements-commits] [PATCH 7 of 8] WaterlevelDifferencesParser: Create ImportWsts directly

Wald Commits scm-commit at wald.intevation.org
Tue Mar 12 09:34:36 CET 2013


# HG changeset patch
# User Felix Wolfsteller <felix.wolfsteller at intevation.de>
# Date 1363077593 -3600
# Node ID 37ff7c030ec9c0e52d08716b335e8f5d5e7a20cd
# Parent  11b2a0c55318abdde0fb6cc287a5ca987ac7c279
WaterlevelDifferencesParser: Create ImportWsts directly.

diff -r 11b2a0c55318 -r 37ff7c030ec9 flys-backend/src/main/java/de/intevation/flys/importer/parsers/WaterlevelDifferencesParser.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/WaterlevelDifferencesParser.java	Mon Mar 11 15:10:11 2013 +0100
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/WaterlevelDifferencesParser.java	Tue Mar 12 09:39:53 2013 +0100
@@ -35,55 +35,34 @@
     public static final Pattern META_UNIT =
         Pattern.compile("^Einheit: \\[(.*)\\].*");
 
-    private List<ImportWaterlevelDifference> differences;
+    /** List of parsed differences as ImportWst s. */
+    private List<ImportWst> differences;
 
-    private ImportWaterlevelDifferenceColumn[] columns;
+    private ImportWstColumn[] columns;
 
-    private ImportWaterlevelDifference current;
+    /** The currently processed dataset. */
+    private ImportWst current;
 
 
     public WaterlevelDifferencesParser() {
-        differences = new ArrayList<ImportWaterlevelDifference>();
+        differences = new ArrayList<ImportWst>();
     }
 
 
-    public List<ImportWaterlevelDifference> getDifferences() {
+    /** Get the differences as wst parsed so far. */
+    public List<ImportWst> getDifferences() {
         return differences;
     }
 
     public List<ImportWst> exportWsts() {
-        List<ImportWst> wsts = new ArrayList<ImportWst>();
-        for(ImportWaterlevelDifference waterlevel: getDifferences()) {
-            String description = waterlevel.getDescription();
-            ImportWst wst = new ImportWst();
-            wsts.add(wst);
-            wst.setDescription(description);
-            // Fixation kind.
-            wst.setKind(7);
-            wst.setUnit(waterlevel.getUnit());
-            wst.setNumberColumns(waterlevel.getColumns().size());
-
-            int i = 0;
-            for (ImportWaterlevelDifferenceColumn wdc: waterlevel.getColumns()) {
-                ImportWstColumn column = wst.getColumn(i);
-                column.setDescription(wdc.getDescription());
-                column.setName(wdc.getDescription());
-                column.setPosition(i);
-                for (ImportWaterlevelDifferenceValue val: wdc.getValues()) {
-                    column.addColumnValue(BigDecimal.valueOf(val.getStation()),
-                        BigDecimal.valueOf(val.getValue()));
-                
-                }
-                i++;
-            }
-        }
-        return wsts;
+        return differences;
     }
 
 
     @Override
     public void parse(File file) throws IOException {
-        current = new ImportWaterlevelDifference(file.getName());
+        current = new ImportWst(file.getName());
+        current.setKind(7);
 
         super.parse(file);
     }
@@ -97,8 +76,10 @@
     @Override
     protected void finish() {
         if (columns != null && current != null) {
-            for (ImportWaterlevelDifferenceColumn col: columns) {
-                current.addValue(col);
+            // TODO figure out if its needed, as the columns
+            //      are registered at their construction time.
+            for (ImportWstColumn col: columns) {
+                // TODO place a current.addColumn(col); here?
             }
 
             differences.add(current);
@@ -165,13 +146,13 @@
 
 
     private void initColumns(String[] cols) {
-        columns = new ImportWaterlevelDifferenceColumn[cols.length];
+        columns = new ImportWstColumn[cols.length];
 
         for (int i = 0; i < cols.length; i++) {
             String name = cols[i].replace("\"", "");
 
             log.debug("Create new column '" + name + "'");
-            columns[i] = new ImportWaterlevelDifferenceColumn(name);
+            columns[i] = new ImportWstColumn(current, name, name, i);
         }
     }
 
@@ -198,10 +179,9 @@
                 String value = cols[idx];
 
                 try {
-                    columns[i].addValue(new ImportWaterlevelDifferenceValue(
-                        station,
-                        nf.parse(value).doubleValue()
-                    ));
+                    columns[i].addColumnValue(
+                        new BigDecimal(station),
+                        new BigDecimal(nf.parse(value).doubleValue()));
                 }
                 catch (ParseException pe) {
                     log.warn("Error while parsing value: '" + value + "'");


More information about the Dive4elements-commits mailing list