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 }

http://dive4elements.wald.intevation.org