Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontal/HorizontalProfileOutputTransition.java @ 234:a7fa7b404897
HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
gnv-artifacts/trunk@302 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 09 Nov 2009 09:52:18 +0000 |
parents | 5fc8f41669a6 |
children | c8ecc0c0bcb4 |
comparison
equal
deleted
inserted
replaced
233:2ceb4bf51cba | 234:a7fa7b404897 |
---|---|
27 import de.intevation.gnv.statistics.Statistics; | 27 import de.intevation.gnv.statistics.Statistics; |
28 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; | 28 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
29 import de.intevation.gnv.transition.exception.TransitionException; | 29 import de.intevation.gnv.transition.exception.TransitionException; |
30 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; | 30 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; |
31 | 31 |
32 import de.intevation.gnv.exports.DefaultExport; | |
33 import de.intevation.gnv.exports.HorizontalProfileDataCollector; | |
34 import de.intevation.gnv.exports.DefaultProfile; | |
35 import de.intevation.gnv.exports.Export.Profile; | |
36 | |
32 /** | 37 /** |
33 * @author Tim Englich <tim.englich@intevation.de> | 38 * @author Tim Englich <tim.englich@intevation.de> |
34 * | 39 * |
35 */ | 40 */ |
36 public class HorizontalProfileOutputTransition extends | 41 public class HorizontalProfileOutputTransition extends |
40 */ | 45 */ |
41 private static final long serialVersionUID = 4401516087492028840L; | 46 private static final long serialVersionUID = 4401516087492028840L; |
42 | 47 |
43 private static Logger log = Logger | 48 private static Logger log = Logger |
44 .getLogger(HorizontalProfileOutputTransition.class); | 49 .getLogger(HorizontalProfileOutputTransition.class); |
50 | |
51 public static final String [] TIMESERIES_CSV_PROFILE_NAMES = { | |
52 "SHAPE", | |
53 "YORDINATE", | |
54 "GROUP1", | |
55 "GROUP2", | |
56 "GROUP3" | |
57 }; | |
58 | |
59 public static final Profile TIMESERIES_CSV_PROFILE = | |
60 new DefaultProfile( | |
61 ',', | |
62 '"', | |
63 '"', | |
64 "CSV", | |
65 "ISO-8859-1"); | |
66 | |
45 /** | 67 /** |
46 * Constructor | 68 * Constructor |
47 */ | 69 */ |
48 public HorizontalProfileOutputTransition() { | 70 public HorizontalProfileOutputTransition() { |
49 super(); | 71 super(); |
82 Collection<Result> chartResult) | 104 Collection<Result> chartResult) |
83 throws UnsupportedEncodingException, | 105 throws UnsupportedEncodingException, |
84 IOException, | 106 IOException, |
85 TransitionException { | 107 TransitionException { |
86 | 108 |
87 if (chartResult != null) { | 109 log.debug("createCSV for HorizontalProfileOutputTransition."); |
88 try { | 110 DefaultExport export = new DefaultExport( |
89 CSVWriter writer = new CSVWriter(new OutputStreamWriter( | 111 new HorizontalProfileDataCollector(TIMESERIES_CSV_PROFILE_NAMES)); |
90 outputStream, "ISO-8859-1"), ','); | 112 |
91 // USE THIS ENCODING BECAUSE OF | 113 export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult); |
92 // PROBLEMS WITH EXCEL AND UTF-8 | 114 |
93 Iterator<Result> it = chartResult.iterator(); | |
94 WKTReader wktReader = new WKTReader(); | |
95 while (it.hasNext()) { | |
96 Result result = it.next(); | |
97 int i = 0; | |
98 String[] entries = new String[6]; | |
99 Point p = (Point)wktReader.read(result.getString("SHAPE")); | |
100 entries[i++] = ""+p.getX(); | |
101 entries[i++] = ""+p.getY(); | |
102 entries[i++] = result.getString("YORDINATE"); | |
103 entries[i++] = result.getString("GROUP1"); | |
104 entries[i++] = result.getString("GROUP2"); | |
105 entries[i++] = result.getString("GROUP3"); | |
106 writer.writeNext(entries); | |
107 } | |
108 writer.close(); | |
109 } catch (ParseException e) { | |
110 log.error(e,e); | |
111 throw new TransitionException( | |
112 "Exception occured while parsing an Point from WKT."); | |
113 } | |
114 } else { | |
115 log.error("No Data given for generation an CSV-File."); | |
116 throw new TransitionException( | |
117 "No Data given for generation an CSV-File."); | |
118 } | |
119 } | 115 } |
120 | 116 |
121 | 117 |
122 | 118 |
123 } | 119 } |