diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 253:07650fc6014c

Put a name to each Statistic group which is similar to the name of the Series in the Charts. issue83 gnv-artifacts/trunk@326 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Thu, 12 Nov 2009 10:15:05 +0000
parents af474a541f74
children d6c75171f1e9
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java	Wed Nov 11 15:54:31 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java	Thu Nov 12 10:15:05 2009 +0000
@@ -42,6 +42,7 @@
 import de.intevation.gnv.exports.Export.Profile;
 import de.intevation.gnv.geobackend.base.Result;
 import de.intevation.gnv.statistics.Statistic;
+import de.intevation.gnv.statistics.StatisticSet;
 import de.intevation.gnv.statistics.Statistics;
 import de.intevation.gnv.statistics.TimeseriesStatistics;
 import de.intevation.gnv.statistics.exception.StatisticsException;
@@ -203,8 +204,17 @@
                 log.debug("Statistics will be generated.");
                 Statistics s = getStatisticsGenerator();
                 Collection<Result> chartResult = this.getChartResult(uuid);
-                Collection<Statistic> statistics = s
-                        .calculateStatistics(chartResult);
+                Collection<KeyValueDescibeData> parameters = 
+                                                this.getParameters(uuid);
+                Collection<KeyValueDescibeData> measurements = 
+                                                this.getMeasurements(uuid);
+                Collection<KeyValueDescibeData> dates = 
+                                                this.getDates(uuid);
+                Collection<StatisticSet> statistics = 
+                                      s.calculateStatistics(chartResult,
+                                                            parameters,
+                                                            measurements,
+                                                            dates);
                 Document doc = this.writeStatistics2XML(statistics);
                 this.writeDocument2OutputStream(doc, outputStream);
             } else if (outputMode.equalsIgnoreCase("odv")) {
@@ -283,21 +293,30 @@
         }
     }
 
-    protected Document writeStatistics2XML(Collection<Statistic> statistic) {
+    protected Document writeStatistics2XML( Collection<StatisticSet> statistic) {
         ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities();
         Document doc = XMLUtils.newDocument();
         if (statistic != null) {
             Node statisticResults = xmlUtilities.createArtifactElement(doc,
-                    "statistic-values");
+                    "statistics");
             doc.appendChild(statisticResults);
-            Iterator<Statistic> it = statistic.iterator();
+            Iterator<StatisticSet> it = statistic.iterator();
             while (it.hasNext()) {
-                Statistic s = it.next();
-                Element result = xmlUtilities.createArtifactElement(doc,
-                        "statistic");
-                result.setAttribute("name", s.getKey());
-                result.setAttribute("value", s.getStringValue());
-                statisticResults.appendChild(result);
+                StatisticSet set = it.next();
+                Element setElement = xmlUtilities.createArtifactElement(doc,
+                                                                       "statistic");
+                setElement.setAttribute("name", set.getName());
+                
+                Iterator<Statistic> sit = set.getStatistics().iterator();
+                while (sit.hasNext()){
+                    Statistic s = sit.next();
+                    Element result = xmlUtilities.createArtifactElement(doc,
+                    "statistic-value");
+                    result.setAttribute("name", s.getKey());
+                    result.setAttribute("value", s.getStringValue());
+                    setElement.appendChild(result);
+                }
+                statisticResults.appendChild(setElement);
             }
 
         }

http://dive4elements.wald.intevation.org