comparison flys-artifacts/src/main/java/org/dive4elements/river/exports/MiddleBedHeightExporter.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/exports/MiddleBedHeightExporter.java@1366277655b9
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.exports;
2
3 import java.io.OutputStream;
4 import java.text.NumberFormat;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.w3c.dom.Document;
9
10 import org.apache.log4j.Logger;
11
12 import au.com.bytecode.opencsv.CSVWriter;
13
14 import org.dive4elements.artifacts.CallContext;
15
16 import org.dive4elements.river.artifacts.FLYSArtifact;
17 import org.dive4elements.river.artifacts.model.CalculationResult;
18 import org.dive4elements.river.artifacts.model.MiddleBedHeightData;
19 import org.dive4elements.river.utils.FLYSUtils;
20 import org.dive4elements.river.utils.Formatter;
21
22
23 /**
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
25 */
26 public class MiddleBedHeightExporter extends AbstractExporter {
27
28 /** Private logger. */
29 private static final Logger logger =
30 Logger.getLogger(MiddleBedHeightExporter.class);
31
32 public static final String CSV_KM =
33 "export.bedheight_middle.csv.header.km";
34
35 public static final String CSV_SOUNDING =
36 "export.bedheight_middle.csv.header.sounding";
37
38 public static final String CSV_HEIGHT =
39 "export.bedheight_middle.csv.header.height";
40
41 public static final String CSV_UNCERTAINTY =
42 "export.bedheight_middle.csv.header.uncertainty";
43
44 public static final String CSV_DATA_GAP =
45 "export.bedheight_middle.csv.header.datagap";
46
47 public static final String CSV_SOUNDING_WIDTH =
48 "export.bedheight_middle.csv.header.soundingwidth";
49
50 public static final String CSV_WIDTH =
51 "export.bedheight_middle.csv.header.width";
52
53 public static final String CSV_LOCATIONS =
54 "export.bedheight_middle.csv.header.locations";
55
56
57 protected List<MiddleBedHeightData[]> data;
58
59
60 public void init(Document request, OutputStream out, CallContext cc) {
61 super.init(request, out, cc);
62 data = new ArrayList<MiddleBedHeightData[]>();
63 }
64
65
66 @Override
67 protected void addData(Object d) {
68 if (d instanceof CalculationResult) {
69 d = ((CalculationResult) d).getData();
70
71 if (d instanceof MiddleBedHeightData[]) {
72 logger.debug("Add new data of type MiddleBedHeightData");
73 data.add((MiddleBedHeightData[]) d);
74 }
75 }
76 }
77
78
79 @Override
80 protected void writeCSVData(CSVWriter writer) {
81 logger.info("MiddleBedHeightExporter.writeCSVData");
82 logger.debug("CSV gets " + data.size() + " MiddleBedHeightData objects.");
83
84 writeCSVHeader(writer);
85
86 for (MiddleBedHeightData[] d: data) {
87 data2CSV(writer, d);
88 }
89 }
90
91
92 protected void writeCSVHeader(CSVWriter writer) {
93 writer.writeNext(new String[] {
94 msg(CSV_KM, CSV_KM),
95 msg(CSV_SOUNDING, CSV_SOUNDING),
96 msg(CSV_HEIGHT, CSV_HEIGHT),
97 msg(CSV_UNCERTAINTY, CSV_UNCERTAINTY),
98 msg(CSV_DATA_GAP, CSV_DATA_GAP),
99 msg(CSV_SOUNDING_WIDTH, CSV_SOUNDING_WIDTH),
100 msg(CSV_WIDTH, CSV_WIDTH),
101 msg(CSV_LOCATIONS, CSV_LOCATIONS)
102 });
103 }
104
105
106 protected void data2CSV(CSVWriter writer, MiddleBedHeightData[] mData) {
107 logger.debug("Add next MiddleBedHeightData to CSV");
108
109 FLYSArtifact flys = (FLYSArtifact) master;
110
111 NumberFormat kmF = Formatter.getMiddleBedHeightKM(context);
112 NumberFormat heightF = Formatter.getMiddleBedHeightHeight(context);
113 NumberFormat uncertF = Formatter.getMiddleBedHeightUncert(context);
114 NumberFormat gapF = Formatter.getMiddleBedHeightDataGap(context);
115 NumberFormat soundF = Formatter.getMiddleBedHeightSounding(context);
116 NumberFormat widthF = Formatter.getMiddleBedHeightWidth(context);
117
118 heightF.setMaximumFractionDigits(1);
119 soundF.setMaximumFractionDigits(1);
120 for (MiddleBedHeightData data: mData) {
121 for (int i = 0, n = data.size(); i < n; i++) {
122 int start = data.getStartYear();
123 int end = data.getEndYear();
124
125 if (start == end) {
126 writer.writeNext(new String[] {
127 kmF.format(data.getKM(i)),
128 data.getDescription(),
129 heightF.format(data.getMiddleHeight(i)),
130 uncertF.format(data.getUncertainty(i)),
131 gapF.format(data.getDataGap(i)) + "%",
132 soundF.format(data.getSoundingWidth(i)),
133 widthF.format(data.getWidth(i)),
134 FLYSUtils.getLocationDescription(flys, data.getKM(i)),
135 });
136 }
137 else {
138 writer.writeNext(new String[] {
139 kmF.format(data.getKM(i)),
140 data.getDescription(),
141 heightF.format(data.getMiddleHeight(i)),
142 "",
143 "",
144 "",
145 "",
146 FLYSUtils.getLocationDescription(flys, data.getKM(i)),
147 });
148 }
149
150 }
151 }
152 }
153
154
155 @Override
156 protected void writePDF(OutputStream out) {
157 logger.error("TODO: Implement FlowVelocityExporter.writePDF");
158 }
159 }
160 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org