[Dive4elements-commits] [PATCH] Wst Parser: Another attempt to fix the order of the Q ranges

Wald Commits scm-commit at wald.intevation.org
Wed Apr 3 20:16:05 CEST 2013


# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1365012961 -7200
# Node ID f3b270e5462ed65b12873d40df3766f5df20d11f
# Parent  b09c095a0b7ece4ec56daf97298f1d156eddb544
Wst Parser: Another attempt to fix the order of the Q ranges.

diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/ImportRange.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRange.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRange.java	Wed Apr 03 20:16:01 2013 +0200
@@ -40,6 +40,12 @@
         return a.compareTo(b);
     }
 
+    public void fixRangesOrder() {
+        if (compare(a, b) > 0) {
+            BigDecimal t = a; a = b; b = t;
+        }
+    }
+
     public int compareTo(ImportRange other) {
         int cmp = compare(a, other.a);
         if (cmp != 0) return cmp;
diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java	Wed Apr 03 20:16:01 2013 +0200
@@ -98,6 +98,12 @@
         session.flush();
     }
 
+    public void fixRangesOrder() {
+        for (ImportWstColumn column: columns) {
+            column.fixRangesOrder();
+        }
+    }
+
     /** Get corresponding mapped wst (from database). */
     public Wst getPeer(River river) {
         if (peer == null) {
diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumn.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumn.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumn.java	Wed Apr 03 20:16:01 2013 +0200
@@ -150,5 +150,11 @@
         }
         return peer;
     }
+
+    public void fixRangesOrder() {
+        for (ImportWstColumnQRange wcqr: columnQRanges) {
+            wcqr.fixRangesOrder();
+        }
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java	Wed Apr 03 20:16:01 2013 +0200
@@ -44,6 +44,10 @@
         this.qRange = qRange;
     }
 
+    public void fixRangesOrder() {
+        qRange.fixRangesOrder();
+    }
+
     public WstColumnQRange getPeer(River river) {
         if (peer == null) {
             WstColumn c = wstColumn.getPeer(river);
diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java	Wed Apr 03 20:16:01 2013 +0200
@@ -45,6 +45,10 @@
         this.q = q;
     }
 
+    public void fixRangesOrder() {
+        range.fixRangesOrder();
+    }
+
     public WstQRange getPeer(River river) {
         if (peer == null) {
             Range r = range.getPeer(river);
diff -r b09c095a0b7e -r f3b270e5462e flys-backend/src/main/java/de/intevation/flys/importer/parsers/WstParser.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/WstParser.java	Wed Apr 03 17:59:11 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/WstParser.java	Wed Apr 03 20:16:01 2013 +0200
@@ -316,11 +316,13 @@
                     }
                 }
 
-            }
+            } // for all lines in WST file
 
             wst.setUnit(new ImportUnit(einheit));
 
             addInterval(minKm, maxKm, aktAbfluesse);
+
+            fixRangesOrder();
         }
         finally {
             if (in != null) {
@@ -329,6 +331,10 @@
         }
     }
 
+    protected void fixRangesOrder() {
+        wst.fixRangesOrder();
+    }
+
     protected void addValue(BigDecimal km, BigDecimal w, int index) {
         if (w != null) {
             ImportWstColumn column = wst.getColumn(index);
@@ -360,10 +366,6 @@
             return;
         }
 
-        if (to.compareTo(from) < 0) {
-            BigDecimal t = from; from = to; to = t;
-        }
-
         ImportRange range = new ImportRange(from, to);
 
         // little workaround to make the q ranges tightly fit.


More information about the Dive4elements-commits mailing list