diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java @ 218:926530bda1a7

Integrated the OutputTransition for Horizontal Cross-Sections gnv-artifacts/trunk@278 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 30 Oct 2009 11:26:03 +0000
parents
children ee2d4134d0b3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java	Fri Oct 30 11:26:03 2009 +0000
@@ -0,0 +1,121 @@
+/**
+ *
+ */
+package de.intevation.gnv.transition.profile.horizontalcrosssection;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.log4j.Logger;
+
+import au.com.bytecode.opencsv.CSVWriter;
+import de.intevation.gnv.chart.ChartLabels;
+import de.intevation.gnv.chart.ChartStyle;
+import de.intevation.gnv.chart.HorizontalCrossSectionChartFactory;
+import de.intevation.gnv.chart.exception.TechnicalChartException;
+import de.intevation.gnv.geobackend.base.Result;
+import de.intevation.gnv.statistics.HorizontalCrossSectionStatistics;
+import de.intevation.gnv.statistics.Statistics;
+import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
+import de.intevation.gnv.transition.exception.TransitionException;
+import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition;
+
+/**
+ * @author Tim Englich <tim.englich@intevation.de>
+ * 
+ */
+public class HorizontalCrossSectionMeshOutputTransition 
+                                      extends TimeSeriesOutputTransition {
+
+    private static Logger log = Logger
+    .getLogger(HorizontalCrossSectionMeshOutputTransition.class);
+    
+    /**
+     * The UID of this Class
+     */
+    private static final long serialVersionUID = 3233620652465061860L;
+
+    /**
+     * Constructor
+     */
+    public HorizontalCrossSectionMeshOutputTransition() {
+        super();
+        super.domainLable = "Latitude [m]";
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream,
+     *      java.util.Collection, java.util.Collection, java.lang.String,
+     *      de.intevation.gnv.chart.ChartStyle,
+     *      de.intevation.gnv.chart.ChartLabels)
+     */
+    @Override
+    protected void createChart(OutputStream outputStream,
+                               Collection<KeyValueDescibeData> parameters,
+                               Collection<KeyValueDescibeData> measurements,
+                               Collection<KeyValueDescibeData> dates,
+                               ChartStyle chartStyle, ChartLabels chartLables,
+                               String uuid) throws IOException,
+                                           TechnicalChartException {
+       new HorizontalCrossSectionChartFactory().
+            createProfileChart(chartLables,  chartStyle, 
+                               parameters, measurements, 
+                               dates, outputStream, 
+                               this.getChartResult(uuid));
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator()
+     */
+    @Override
+    protected Statistics getStatisticsGenerator() {
+        return new HorizontalCrossSectionStatistics();
+    }
+    
+    /**
+     * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createCSV(java.io.OutputStream,
+     *      java.util.Collection)
+     */
+    @Override
+    protected void createCSV(OutputStream outputStream,
+                             Collection<Result> chartResult)
+                                            throws UnsupportedEncodingException,
+                                                   IOException,
+                                                   TransitionException {
+        if (chartResult != null) {
+            try {
+                CSVWriter writer = new CSVWriter(new OutputStreamWriter(
+                        outputStream, "ISO-8859-1"), ','); 
+                // USE THIS ENCODING BECAUSE OF
+                // PROBLEMS WITH EXCEL AND UTF-8
+                Iterator<Result> it = chartResult.iterator();
+                while (it.hasNext()) {
+                    Result result = it.next();
+                    int i = 0;
+                    // TODO implement me
+                    String[] entries = new String[5];
+                    entries[i++] = result.getString("SHAPE");
+                    entries[i++] = result.getString("YORDINATE");
+                    entries[i++] = result.getString("IPOSITION");
+                    entries[i++] = result.getString("JPOSITION");
+                    entries[i++] = result.getString("KPOSITION");
+                    writer.writeNext(entries);
+                }
+                writer.close();
+            } catch (Exception e) {
+                log.error(e,e);
+                throw new TransitionException(
+                "Exception occured while parsing an Point from WKT.");
+            }
+        } else {
+            log.error("No Data given for generating an CSV-File.");
+            throw new TransitionException(
+                    "No Data given for generating an CSV-File.");
+        }
+    }
+
+}

http://dive4elements.wald.intevation.org