annotate 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
rev   line source
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.transition.profile.horizontal;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.io.IOException;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 import java.io.OutputStream;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
8 import java.io.OutputStreamWriter;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
9 import java.io.UnsupportedEncodingException;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 import java.util.Collection;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
11 import java.util.Iterator;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
12
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
13 import org.apache.log4j.Logger;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
14
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
15 import au.com.bytecode.opencsv.CSVWriter;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
16
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
17 import com.vividsolutions.jts.geom.Point;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
18 import com.vividsolutions.jts.io.ParseException;
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
19 import com.vividsolutions.jts.io.WKTReader;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 import de.intevation.gnv.chart.ChartLabels;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 import de.intevation.gnv.chart.ChartStyle;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 import de.intevation.gnv.chart.HorizontalProfileChartFactory;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 import de.intevation.gnv.chart.exception.TechnicalChartException;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
25 import de.intevation.gnv.geobackend.base.Result;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 import de.intevation.gnv.statistics.HorizontalProfileStatistics;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 import de.intevation.gnv.statistics.Statistics;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
29 import de.intevation.gnv.transition.exception.TransitionException;
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
32 import de.intevation.gnv.exports.DefaultExport;
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
33 import de.intevation.gnv.exports.HorizontalProfileDataCollector;
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
34 import de.intevation.gnv.exports.DefaultProfile;
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
35 import de.intevation.gnv.exports.Export.Profile;
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
36
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 * @author Tim Englich <tim.englich@intevation.de>
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
39 *
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 */
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
41 public class HorizontalProfileOutputTransition extends
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
42 TimeSeriesOutputTransition {
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 * The UID of this class
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 private static final long serialVersionUID = 4401516087492028840L;
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
48 private static Logger log = Logger
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
49 .getLogger(HorizontalProfileOutputTransition.class);
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
50
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
51 public static final String [] TIMESERIES_CSV_PROFILE_NAMES = {
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
52 "SHAPE",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
53 "YORDINATE",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
54 "GROUP1",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
55 "GROUP2",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
56 "GROUP3"
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
57 };
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
58
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
59 public static final Profile TIMESERIES_CSV_PROFILE =
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
60 new DefaultProfile(
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
61 ',',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
62 '"',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
63 '"',
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
64 "CSV",
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
65 "ISO-8859-1");
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
66
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 * Constructor
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 public HorizontalProfileOutputTransition() {
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 super();
185
5fc8f41669a6 Added Calculation of the Distance in the unit km for Geodetic-Coordinates according to the Specification GT_0030.004
Tim Englich <tim.englich@intevation.de>
parents: 179
diff changeset
72 super.domainLable = "Distance [km]";
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 }
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 /**
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
76 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
77 * java.util.Collection, java.util.Collection, java.lang.String,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
78 * de.intevation.gnv.chart.ChartStyle,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
79 * de.intevation.gnv.chart.ChartLabels)
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 @Override
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 protected void createChart(OutputStream outputStream,
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
83 Collection<KeyValueDescibeData> parameters,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
84 Collection<KeyValueDescibeData> measurements,
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
85 Collection<KeyValueDescibeData> dates,
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
86 ChartStyle chartStyle, ChartLabels chartLables,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
87 String uuid) throws IOException,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
88 TechnicalChartException {
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89 HorizontalProfileChartFactory chartFactory = new HorizontalProfileChartFactory();
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
90 chartFactory.createProfileChart(chartLables, chartStyle, parameters,
179
f2c76f35da5a Added missing Class Description Values to the Horizontal Profile Charts
Tim Englich <tim.englich@intevation.de>
parents: 177
diff changeset
91 measurements,dates, outputStream, this.getChartResult(uuid));
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 }
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
93
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94 /**
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator()
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 */
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
97 @Override
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
98 protected Statistics getStatisticsGenerator() {
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 125
diff changeset
99 return new HorizontalProfileStatistics();
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 }
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
102 @Override
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
103 protected void createCSV(OutputStream outputStream,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
104 Collection<Result> chartResult)
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
105 throws UnsupportedEncodingException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
106 IOException,
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
107 TransitionException {
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
108
234
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
109 log.debug("createCSV for HorizontalProfileOutputTransition.");
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
110 DefaultExport export = new DefaultExport(
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
111 new HorizontalProfileDataCollector(TIMESERIES_CSV_PROFILE_NAMES));
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
112
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
113 export.create(TIMESERIES_CSV_PROFILE, outputStream, chartResult);
a7fa7b404897 HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 185
diff changeset
114
177
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
115 }
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
116
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
117
08b8b79b30ff Integrated special CSV-Export for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents: 171
diff changeset
118
113
a16f5267803e Added Basic-Support for HorizontalProfiles
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
119 }

http://dive4elements.wald.intevation.org