Mercurial > dive4elements > gnv-client
comparison 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 |
comparison
equal
deleted
inserted
replaced
229:a610c0a01afc | 230:f68ffbe974a0 |
---|---|
6 import java.awt.Color; | 6 import java.awt.Color; |
7 import java.awt.Dimension; | 7 import java.awt.Dimension; |
8 import java.io.IOException; | 8 import java.io.IOException; |
9 import java.io.OutputStream; | 9 import java.io.OutputStream; |
10 import java.io.OutputStreamWriter; | 10 import java.io.OutputStreamWriter; |
11 import java.io.PrintWriter; | |
11 import java.io.UnsupportedEncodingException; | 12 import java.io.UnsupportedEncodingException; |
12 import java.util.ArrayList; | 13 import java.util.ArrayList; |
13 import java.util.Collection; | 14 import java.util.Collection; |
14 import java.util.Iterator; | 15 import java.util.Iterator; |
15 import java.util.List; | 16 import java.util.List; |
48 import de.intevation.gnv.transition.InputData; | 49 import de.intevation.gnv.transition.InputData; |
49 import de.intevation.gnv.transition.OutputTransitionBase; | 50 import de.intevation.gnv.transition.OutputTransitionBase; |
50 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; | 51 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
51 import de.intevation.gnv.transition.describedata.NamedCollection; | 52 import de.intevation.gnv.transition.describedata.NamedCollection; |
52 import de.intevation.gnv.transition.exception.TransitionException; | 53 import de.intevation.gnv.transition.exception.TransitionException; |
54 | |
55 import de.intevation.gnv.exports.DefaultExport; | |
56 import de.intevation.gnv.exports.DefaultProfile; | |
57 import de.intevation.gnv.exports.Export.Profile; | |
58 | |
53 import de.intevation.gnv.utils.ArtifactXMLUtilities; | 59 import de.intevation.gnv.utils.ArtifactXMLUtilities; |
60 | |
54 | 61 |
55 /** | 62 /** |
56 * @author Tim Englich <tim.englich@intevation.de> | 63 * @author Tim Englich <tim.englich@intevation.de> |
57 * | 64 * |
58 */ | 65 */ |
76 | 83 |
77 protected String featureValuesName = "featureid"; | 84 protected String featureValuesName = "featureid"; |
78 protected String parameterValuesName = "parameterid"; | 85 protected String parameterValuesName = "parameterid"; |
79 protected String measuremenValueName = "measurementid"; | 86 protected String measuremenValueName = "measurementid"; |
80 protected String dateValueName = "dateid"; | 87 protected String dateValueName = "dateid"; |
88 | |
89 public static final String [] TIMESERIES_CSV_PROFILE_NAMES = { | |
90 "XORDINATE", | |
91 "YORDINATE", | |
92 "GROUP1", | |
93 "GROUP2", | |
94 "GROUP3" | |
95 }; | |
96 | |
97 /** | |
98 * Profile for exporting data to cvs | |
99 */ | |
100 public static final Profile TIMESERIES_CSV_PROFILE = | |
101 new DefaultProfile( | |
102 TIMESERIES_CSV_PROFILE_NAMES, | |
103 ',', | |
104 '"', | |
105 '"', | |
106 "CSV", | |
107 "ISO-8859-1"); | |
108 | |
109 /** | |
110 * Profile for exporting data to odv | |
111 * TODO Change TIMESERIES_PROFILE_NAMES, which belong to CSV exports | |
112 */ | |
113 public static final Profile TIMESERIES_ODV_PROFILE = | |
114 new DefaultProfile( | |
115 TIMESERIES_CSV_PROFILE_NAMES, | |
116 '\t', | |
117 CSVWriter.NO_QUOTE_CHARACTER, | |
118 CSVWriter.NO_ESCAPE_CHARACTER, | |
119 "ODV", | |
120 "ISO-8859-1"); | |
81 | 121 |
82 /** | 122 /** |
83 * Constructor | 123 * Constructor |
84 */ | 124 */ |
85 public TimeSeriesOutputTransition() { | 125 public TimeSeriesOutputTransition() { |
136 Statistics s = getStatisticsGenerator(); | 176 Statistics s = getStatisticsGenerator(); |
137 Collection<Statistic> statistics = s | 177 Collection<Statistic> statistics = s |
138 .calculateStatistics(chartResult); | 178 .calculateStatistics(chartResult); |
139 Document doc = this.writeStatistics2XML(statistics); | 179 Document doc = this.writeStatistics2XML(statistics); |
140 this.writeDocument2OutputStream(doc, outputStream); | 180 this.writeDocument2OutputStream(doc, outputStream); |
181 } else if (outputMode.equalsIgnoreCase("odv")) { | |
182 //TimeSeriesExport export = new TimeSeriesExport(); | |
183 //export.createODV(outputStream, chartResult); | |
184 createODV(outputStream, chartResult); | |
141 } | 185 } |
142 } catch (IOException e) { | 186 } catch (IOException e) { |
143 log.error(e, e); | 187 log.error(e, e); |
144 throw new TransitionException(e); | 188 throw new TransitionException(e); |
145 } catch (TechnicalChartException e) { | 189 } catch (TechnicalChartException e) { |
149 log.error(e, e); | 193 log.error(e, e); |
150 throw new TransitionException(e); | 194 throw new TransitionException(e); |
151 } | 195 } |
152 } | 196 } |
153 | 197 |
198 | |
154 /** | 199 /** |
155 * @param outputStream | 200 * @param outputStream |
156 * @param chartResult | 201 * @param chartResult |
157 * @throws UnsupportedEncodingException | 202 * @throws UnsupportedEncodingException |
158 * @throws IOException | 203 * @throws IOException |
161 protected void createCSV(OutputStream outputStream, | 206 protected void createCSV(OutputStream outputStream, |
162 Collection<Result> chartResult) | 207 Collection<Result> chartResult) |
163 throws UnsupportedEncodingException, | 208 throws UnsupportedEncodingException, |
164 IOException, | 209 IOException, |
165 TransitionException { | 210 TransitionException { |
166 if (chartResult != null) { | 211 DefaultExport export = new DefaultExport(); |
167 CSVWriter writer = new CSVWriter(new OutputStreamWriter( | 212 |
168 outputStream, "ISO-8859-1"), ','); | 213 export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult); |
169 // USE THIS ENCODING BECAUSE OF | 214 } |
170 // PROBLEMS WITH EXCEL AND UTF-8 | 215 |
171 Iterator<Result> it = chartResult.iterator(); | 216 /** |
172 while (it.hasNext()) { | 217 * TODO Result is not used at the moment. Change result with correct data. |
173 Result result = it.next(); | 218 */ |
174 int i = 0; | 219 protected void createODV(OutputStream outputStream, Collection result) |
175 String[] entries = new String[5]; | 220 throws IOException, TransitionException { |
176 entries[i++] = result.getString("XORDINATE"); | 221 |
177 entries[i++] = result.getString("YORDINATE"); | 222 DefaultExport export = new DefaultExport(); |
178 entries[i++] = result.getString("GROUP1"); | 223 |
179 entries[i++] = result.getString("GROUP2"); | 224 export.create(TIMESERIES_ODV_PROFILE, outputStream, result); |
180 entries[i++] = result.getString("GROUP3"); | |
181 writer.writeNext(entries); | |
182 } | |
183 writer.close(); | |
184 } else { | |
185 log.error("No Data given for generation an CSV-File."); | |
186 throw new TransitionException( | |
187 "No Data given for generation an CSV-File."); | |
188 } | |
189 } | 225 } |
190 | 226 |
191 /** | 227 /** |
192 * @return | 228 * @return |
193 */ | 229 */ |