Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 230:f68ffbe974a0
Implemented an exporter for odv and csv exports.
gnv-artifacts/trunk@298 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 06 Nov 2009 10:56:18 +0000 |
parents | ee2d4134d0b3 |
children | 3d6d89bcbf42 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java Fri Nov 06 10:23:55 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java Fri Nov 06 10:56:18 2009 +0000 @@ -8,6 +8,7 @@ import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; +import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; @@ -50,8 +51,14 @@ import de.intevation.gnv.transition.describedata.KeyValueDescibeData; import de.intevation.gnv.transition.describedata.NamedCollection; import de.intevation.gnv.transition.exception.TransitionException; + +import de.intevation.gnv.exports.DefaultExport; +import de.intevation.gnv.exports.DefaultProfile; +import de.intevation.gnv.exports.Export.Profile; + import de.intevation.gnv.utils.ArtifactXMLUtilities; + /** * @author Tim Englich <tim.englich@intevation.de> * @@ -78,6 +85,39 @@ protected String parameterValuesName = "parameterid"; protected String measuremenValueName = "measurementid"; protected String dateValueName = "dateid"; + + public static final String [] TIMESERIES_CSV_PROFILE_NAMES = { + "XORDINATE", + "YORDINATE", + "GROUP1", + "GROUP2", + "GROUP3" + }; + + /** + * Profile for exporting data to cvs + */ + public static final Profile TIMESERIES_CSV_PROFILE = + new DefaultProfile( + TIMESERIES_CSV_PROFILE_NAMES, + ',', + '"', + '"', + "CSV", + "ISO-8859-1"); + + /** + * Profile for exporting data to odv + * TODO Change TIMESERIES_PROFILE_NAMES, which belong to CSV exports + */ + public static final Profile TIMESERIES_ODV_PROFILE = + new DefaultProfile( + TIMESERIES_CSV_PROFILE_NAMES, + '\t', + CSVWriter.NO_QUOTE_CHARACTER, + CSVWriter.NO_ESCAPE_CHARACTER, + "ODV", + "ISO-8859-1"); /** * Constructor @@ -138,6 +178,10 @@ .calculateStatistics(chartResult); Document doc = this.writeStatistics2XML(statistics); this.writeDocument2OutputStream(doc, outputStream); + } else if (outputMode.equalsIgnoreCase("odv")) { + //TimeSeriesExport export = new TimeSeriesExport(); + //export.createODV(outputStream, chartResult); + createODV(outputStream, chartResult); } } catch (IOException e) { log.error(e, e); @@ -151,6 +195,7 @@ } } + /** * @param outputStream * @param chartResult @@ -163,29 +208,20 @@ throws UnsupportedEncodingException, IOException, TransitionException { - if (chartResult != null) { - 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; - String[] entries = new String[5]; - entries[i++] = result.getString("XORDINATE"); - entries[i++] = result.getString("YORDINATE"); - entries[i++] = result.getString("GROUP1"); - entries[i++] = result.getString("GROUP2"); - entries[i++] = result.getString("GROUP3"); - writer.writeNext(entries); - } - writer.close(); - } else { - log.error("No Data given for generation an CSV-File."); - throw new TransitionException( - "No Data given for generation an CSV-File."); - } + DefaultExport export = new DefaultExport(); + + export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult); + } + + /** + * TODO Result is not used at the moment. Change result with correct data. + */ + protected void createODV(OutputStream outputStream, Collection result) + throws IOException, TransitionException { + + DefaultExport export = new DefaultExport(); + + export.create(TIMESERIES_ODV_PROFILE, outputStream, result); } /**