tim@218: /** tim@218: * tim@218: */ tim@218: package de.intevation.gnv.transition.profile.horizontalcrosssection; tim@218: tim@218: import java.io.IOException; tim@218: import java.io.OutputStream; tim@218: import java.io.OutputStreamWriter; tim@218: import java.io.UnsupportedEncodingException; tim@218: import java.util.Collection; tim@218: import java.util.Iterator; tim@218: tim@218: import org.apache.log4j.Logger; tim@218: tim@218: import au.com.bytecode.opencsv.CSVWriter; tim@218: import de.intevation.gnv.chart.ChartLabels; tim@218: import de.intevation.gnv.chart.ChartStyle; tim@218: import de.intevation.gnv.chart.HorizontalCrossSectionChartFactory; tim@218: import de.intevation.gnv.chart.exception.TechnicalChartException; tim@218: import de.intevation.gnv.geobackend.base.Result; tim@218: import de.intevation.gnv.statistics.HorizontalCrossSectionStatistics; tim@218: import de.intevation.gnv.statistics.Statistics; tim@218: import de.intevation.gnv.transition.describedata.KeyValueDescibeData; tim@218: import de.intevation.gnv.transition.exception.TransitionException; tim@218: import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; tim@218: tim@218: /** tim@218: * @author Tim Englich tim@218: * tim@218: */ tim@218: public class HorizontalCrossSectionMeshOutputTransition tim@218: extends TimeSeriesOutputTransition { tim@218: tim@218: private static Logger log = Logger tim@218: .getLogger(HorizontalCrossSectionMeshOutputTransition.class); tim@218: tim@218: /** tim@218: * The UID of this Class tim@218: */ tim@218: private static final long serialVersionUID = 3233620652465061860L; tim@218: tim@218: /** tim@218: * Constructor tim@218: */ tim@218: public HorizontalCrossSectionMeshOutputTransition() { tim@218: super(); tim@218: super.domainLable = "Latitude [m]"; tim@218: } tim@218: tim@218: /** tim@218: * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream, tim@218: * java.util.Collection, java.util.Collection, java.lang.String, tim@218: * de.intevation.gnv.chart.ChartStyle, tim@218: * de.intevation.gnv.chart.ChartLabels) tim@218: */ tim@218: @Override tim@218: protected void createChart(OutputStream outputStream, tim@218: Collection parameters, tim@218: Collection measurements, tim@218: Collection dates, tim@218: ChartStyle chartStyle, ChartLabels chartLables, tim@218: String uuid) throws IOException, tim@218: TechnicalChartException { tim@218: new HorizontalCrossSectionChartFactory(). tim@218: createProfileChart(chartLables, chartStyle, tim@218: parameters, measurements, tim@218: dates, outputStream, tim@218: this.getChartResult(uuid)); tim@218: } tim@218: tim@218: /** tim@218: * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() tim@218: */ tim@218: @Override tim@218: protected Statistics getStatisticsGenerator() { tim@218: return new HorizontalCrossSectionStatistics(); tim@218: } tim@218: tim@218: /** tim@218: * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createCSV(java.io.OutputStream, tim@218: * java.util.Collection) tim@218: */ tim@218: @Override tim@218: protected void createCSV(OutputStream outputStream, tim@218: Collection chartResult) tim@218: throws UnsupportedEncodingException, tim@218: IOException, tim@218: TransitionException { tim@218: if (chartResult != null) { tim@218: try { tim@218: CSVWriter writer = new CSVWriter(new OutputStreamWriter( tim@218: outputStream, "ISO-8859-1"), ','); tim@218: // USE THIS ENCODING BECAUSE OF tim@218: // PROBLEMS WITH EXCEL AND UTF-8 tim@218: Iterator it = chartResult.iterator(); tim@218: while (it.hasNext()) { tim@218: Result result = it.next(); tim@218: int i = 0; tim@218: // TODO implement me tim@218: String[] entries = new String[5]; tim@218: entries[i++] = result.getString("SHAPE"); tim@218: entries[i++] = result.getString("YORDINATE"); tim@218: entries[i++] = result.getString("IPOSITION"); tim@218: entries[i++] = result.getString("JPOSITION"); tim@218: entries[i++] = result.getString("KPOSITION"); tim@218: writer.writeNext(entries); tim@218: } tim@218: writer.close(); tim@218: } catch (Exception e) { tim@218: log.error(e,e); tim@218: throw new TransitionException( tim@218: "Exception occured while parsing an Point from WKT."); tim@218: } tim@218: } else { tim@218: log.error("No Data given for generating an CSV-File."); tim@218: throw new TransitionException( tim@218: "No Data given for generating an CSV-File."); tim@218: } tim@218: } tim@218: tim@218: }