comparison flys-artifacts/src/main/java/de/intevation/flys/exports/sq/SQRelationExporter.java @ 3077:5c87d4ca1bd3

Added chart and export generator stubs for SQ relation. flys-artifacts/trunk@4672 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 15 Jun 2012 10:17:22 +0000
parents
children ed07dd55f487
comparison
equal deleted inserted replaced
3076:5642a83420f2 3077:5c87d4ca1bd3
1 package de.intevation.flys.exports;
2
3 import java.io.OutputStream;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.w3c.dom.Document;
8
9 import org.apache.log4j.Logger;
10
11 import au.com.bytecode.opencsv.CSVWriter;
12
13 import de.intevation.artifacts.CallContext;
14
15 import de.intevation.flys.artifacts.model.CalculationResult;
16
17
18 /**
19 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
20 */
21 public class SQRelationExporter extends AbstractExporter {
22
23 /** Private logger. */
24 private static final Logger logger =
25 Logger.getLogger(SQRelationExporter.class);
26
27
28 public static final String CSV_PARAMETER =
29 "export.sqrelation.csv.header.parameter";
30
31 public static final String CSV_STATION =
32 "export.sqrelation.csv.header.station";
33
34 public static final String CSV_KM =
35 "export.sqrelation.csv.header.km";
36
37 public static final String CSV_FUNCTION =
38 "export.sqrelation.csv.header.function";
39
40 public static final String CSV_GAUGE =
41 "export.sqrelation.csv.header.gauge";
42
43 public static final String CSV_COEFF_A =
44 "export.sqrelation.csv.header.coeff.a";
45
46 public static final String CSV_COEFF_B =
47 "export.sqrelation.csv.header.coeff.b";
48
49 public static final String CSV_COEFF_Q =
50 "export.sqrelation.csv.header.coeff.q";
51
52 public static final String CSV_COEFF_R =
53 "export.sqrelation.csv.header.coeff.r";
54
55 public static final String CSV_N_TOTAL =
56 "export.sqrelation.csv.header.n.total";
57
58 public static final String CSV_N_OUTLIERS =
59 "export.sqrelation.csv.header.n.outliers";
60
61 public static final String CSV_C_DUAN =
62 "export.sqrelation.csv.header.c.duan";
63
64 public static final String CSV_C_FERGUSON =
65 "export.sqrelation.csv.header.c.ferguson";
66
67 public static final String CSV_VARIANCE =
68 "export.sqrelation.csv.header.variance";
69
70
71 // TODO use correct model class here!
72 protected List<Object[]> data;
73
74
75 public void init(Document request, OutputStream out, CallContext cc) {
76 super.init(request, out, cc);
77 data = new ArrayList<Object[]>();
78 }
79
80
81 @Override
82 protected void addData(Object d) {
83 if (d instanceof CalculationResult) {
84 d = ((CalculationResult) d).getData();
85
86 if (d instanceof Object[]) {
87 logger.debug("Add new data of type XXX");
88 data.add((Object[]) d);
89 }
90 }
91 }
92
93
94 @Override
95 protected void writeCSVData(CSVWriter writer) {
96 logger.debug("writeCSVData");
97 logger.error("NOT IMPLEMENTED: writeCSVData");
98
99 logger.debug("CSV gets " + data.size() + " rows.");
100
101 writeCSVHeader(writer);
102
103 for (Object[] d: data) {
104 data2CSV(writer, d);
105 }
106 }
107
108
109 protected void writeCSVHeader(CSVWriter writer) {
110 writer.writeNext(new String[] {
111 msg(CSV_PARAMETER, CSV_PARAMETER),
112 msg(CSV_STATION, CSV_STATION),
113 msg(CSV_KM , CSV_KM),
114 msg(CSV_FUNCTION , CSV_FUNCTION),
115 msg(CSV_GAUGE , CSV_GAUGE),
116 msg(CSV_COEFF_A , CSV_COEFF_A),
117 msg(CSV_COEFF_B , CSV_COEFF_B),
118 msg(CSV_COEFF_Q , CSV_COEFF_Q),
119 msg(CSV_COEFF_R , CSV_COEFF_R),
120 msg(CSV_N_TOTAL , CSV_N_TOTAL),
121 msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS),
122 msg(CSV_C_DUAN , CSV_C_DUAN),
123 msg(CSV_C_FERGUSON, CSV_C_FERGUSON),
124 msg(CSV_VARIANCE , CSV_VARIANCE)
125 });
126 }
127
128
129 protected void data2CSV(CSVWriter writer, Object[] mData) {
130 logger.debug("data2CSV");
131 logger.error("NOT IMPLEMENTED: data2CSV");
132 }
133
134
135 @Override
136 protected void writePDF(OutputStream out) {
137 logger.debug("writePDF");
138 logger.error("NOT IMPLEMENTED: writePDF");
139 }
140 }
141 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org