diff flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2423:ac528b883b47

Picked rev 4070,4074,4076,4080 from trunk. flys-artifacts/tags/2.6.1@4083 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 17 Feb 2012 12:59:56 +0000
parents 6f4a1f513e89
children 00cf69edfcc0
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java	Fri Feb 17 11:29:41 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java	Fri Feb 17 12:59:56 2012 +0000
@@ -261,16 +261,19 @@
     protected void writeCSVData(CSVWriter writer) {
         logger.info("WaterlevelExporter.writeData");
 
-        WQ_MODE mode    = FLYSUtils.getWQMode((FLYSArtifact)master);
-        boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
-        boolean isQ     = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
+        WQ_MODE mode     = FLYSUtils.getWQMode((FLYSArtifact)master);
+        boolean atGauge  = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
+        boolean isQ      = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
+        FLYSUtils.WQ_INPUT input
+            = FLYSUtils.getWQInputMode((FLYSArtifact)master);
+        boolean isRange = input == FLYSUtils.WQ_INPUT.RANGE;
 
         writeCSVMeta(writer);
         writeCSVHeader(writer, atGauge, isQ);
 
         for (WQKms[] tmp: data) {
             for (WQKms wqkms: tmp) {
-                wQKms2CSV(writer, wqkms, atGauge, isQ);
+                wQKms2CSV(writer, wqkms, atGauge, isQ, isRange);
             }
         }
     }
@@ -338,13 +341,22 @@
         FLYSUtils.WQ_MODE wq = FLYSUtils.getWQMode(flys);
         if (wq == FLYSUtils.WQ_MODE.QFREE || wq == FLYSUtils.WQ_MODE.QGAUGE) {
             double[] qs  = FLYSUtils.getQs(flys);
+            FLYSUtils.WQ_INPUT input = FLYSUtils.getWQInputMode(flys);
 
-            String lower = "";
-            String upper = "";
+            String data = "";
 
-            if (qs != null && qs.length > 0) {
-                lower = String.valueOf(qs[0]);
-                upper = String.valueOf(qs[qs.length-1]);
+            if ((input == FLYSUtils.WQ_INPUT.ADAPTED ||
+                input == FLYSUtils.WQ_INPUT.RANGE) &&
+                qs != null && qs.length > 0)
+            {
+                data = String.valueOf(qs[0]);
+                data += " - " + String.valueOf(qs[qs.length-1]);
+            }
+            else if (input == FLYSUtils.WQ_INPUT.SINGLE && qs != null){
+                data = String.valueOf(qs[0]);
+                for (int i = 1; i < qs.length; i++) {
+                    data += ", " + String.valueOf(qs[i]);
+                }
             }
             else {
                 logger.warn("Could not determine Q range!");
@@ -355,7 +367,7 @@
                     meta,
                     CSV_META_Q,
                     CSV_META_Q,
-                    new Object[] { lower, upper })
+                    new Object[] {data})
             });
         }
         else {
@@ -419,7 +431,8 @@
         CSVWriter writer,
         WQKms     wqkms,
         boolean   atGauge,
-        boolean   isQ
+        boolean   isQ,
+        boolean   isRange
     ) {
         logger.debug("WaterlevelExporter.wQKms2CSV");
 
@@ -456,11 +469,15 @@
             result = wqkms.get(i, result);
 
             if (atGauge) {
+                String tmp = desc;
+                if (!isRange) {
+                    tmp = FLYSUtils.getNamedMainValue((WINFOArtifact)flys, wqkms.getRawValue());
+                }
                 writer.writeNext(new String[] {
                     kmf.format(result[2]),
                     wf.format(result[0]),
                     qf.format(result[1]),
-                    desc,
+                    tmp,
                     FLYSUtils.getLocationDescription(flys, result[2]),
                     result[2] >= a && result[2] <= b
                         ? gaugeName

http://dive4elements.wald.intevation.org