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; ingo@300: import java.util.Locale; tim@218: tim@218: import org.apache.log4j.Logger; tim@218: tim@218: import au.com.bytecode.opencsv.CSVWriter; ingo@300: import de.intevation.gnv.chart.Chart; tim@218: import de.intevation.gnv.chart.ChartLabels; tim@218: import de.intevation.gnv.geobackend.base.Result; tim@218: import de.intevation.gnv.statistics.Statistics; 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@307: @Override ingo@300: protected Chart getChart( ingo@300: ChartLabels chartLables, ingo@300: Collection parameters, ingo@300: Collection measurements, ingo@310: Collection dates, ingo@300: Collection result, ingo@300: Locale locale, ingo@327: String uuid, ingo@327: boolean linesVisible, ingo@327: boolean shapesVisible ingo@300: ) { ingo@300: Chart chart = null; ingo@300: ingo@300: if (CACHE_CHART) { ingo@300: log.info("Try to get horizontalcrosssection chart from cache."); ingo@300: chart = (Chart) getChartFromCache(uuid); ingo@300: } ingo@300: ingo@300: if (chart != null) ingo@300: return chart; ingo@300: ingo@300: log.info("Chart not in cache yet."); ingo@300: ingo@300: log.warn("This sort of chart is not implemented yet."); ingo@300: /* TODO Implement a special chart for this sort of charts. ingo@300: chart = new HorizontalProfileChart( ingo@300: chartLables, ingo@300: chartTheme, ingo@300: parameters, ingo@300: measurements, ingo@300: result, ingo@300: dates, ingo@300: locale ingo@300: ); ingo@300: chart.generateChart(); ingo@300: ingo@300: if (CACHE_CHART) { ingo@300: log.info("Put chart into cache."); ingo@300: purifyChart(chart, uuid); ingo@300: } ingo@300: */ ingo@300: ingo@300: return chart; tim@218: } tim@218: ingo@300: tim@218: /** tim@218: * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() tim@218: */ tim@218: @Override tim@218: protected Statistics getStatisticsGenerator() { tim@256: return null; //Statistiken werden nicht für diesen Out-Typ unterstützt. 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: 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: }