comparison flys-artifacts/src/main/java/org/dive4elements/river/exports/DischargeLongitudinalSectionExporter.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/DischargeLongitudinalSectionExporter.java@0773f4524107
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.exports;
2
3 import au.com.bytecode.opencsv.CSVWriter;
4
5 import org.dive4elements.river.artifacts.model.CalculationResult;
6 import org.dive4elements.river.artifacts.model.WQCKms;
7 import org.dive4elements.river.artifacts.model.WQKms;
8
9 import java.text.NumberFormat;
10
11 import org.apache.log4j.Logger;
12
13 /**
14 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
15 */
16 public class DischargeLongitudinalSectionExporter extends WaterlevelExporter {
17
18 /** The logger used in this exporter.*/
19 private static Logger logger =
20 Logger.getLogger(DischargeLongitudinalSectionExporter.class);
21
22
23 public static final String CSV_KM_HEADER =
24 "export.discharge.longitudinal.section.csv.header.km";
25
26 public static final String CSV_W_HEADER =
27 "export.discharge.longitudinal.section.csv.header.w";
28
29 public static final String CSV_CW_HEADER =
30 "export.discharge.longitudinal.section.csv.header.cw";
31
32 public static final String CSV_Q_HEADER =
33 "export.discharge.longitudinal.section.csv.header.q";
34
35 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km";
36 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]";
37 public static final String DEFAULT_CSV_CW_HEADER = "W korr.";
38 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]";
39
40
41 @Override
42 protected void addData(Object d) {
43 if (d instanceof CalculationResult) {
44 d = ((CalculationResult)d).getData();
45 if (d instanceof WQKms []) {
46 data.add((WQKms [])d);
47 }
48 }
49 }
50
51
52 @Override
53 protected void writeCSVHeader(
54 CSVWriter writer,
55 boolean atGauge,
56 boolean isQ
57 ) {
58 logger.info("WaterlevelExporter.writeCSVHeader");
59
60 writer.writeNext(new String[] {
61 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER),
62 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER),
63 msg(CSV_CW_HEADER, DEFAULT_CSV_CW_HEADER),
64 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER),
65 msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER)
66 });
67 }
68
69
70 protected void wQKms2CSV(
71 CSVWriter writer,
72 WQKms wqkms,
73 boolean atGauge,
74 boolean isQ
75 ) {
76 logger.debug("WaterlevelExporter.wQKms2CSV");
77
78 int size = wqkms.size();
79 double[] result = new double[4];
80
81 NumberFormat kmf = getKmFormatter();
82 NumberFormat wf = getWFormatter();
83 NumberFormat qf = getQFormatter();
84
85 for (int i = 0; i < size; i ++) {
86 result = wqkms.get(i, result);
87
88 String name = wqkms.getName();
89 String wc = "";
90 if (wqkms instanceof WQCKms) {
91 wc = wf.format(result[3]);
92 }
93
94 writer.writeNext(new String[] {
95 kmf.format(result[2]),
96 wf.format(result[0]),
97 wc,
98 qf.format(result[1]),
99 name
100 });
101 }
102 }
103
104
105 @Override
106 protected void addWSTColumn(WstWriter writer, WQKms wqkms) {
107 String name = wqkms.getName();
108
109 // is it a W or a Q mode?
110 int wIdx = name.indexOf("W");
111 int qIdx = name.indexOf("Q");
112
113 String wq = null;
114 if (wIdx >= 0) {
115 wq = "W";
116 }
117 else if (qIdx >= 0) {
118 wq = "Q";
119 }
120
121 // we just want to display the first W or Q value in the WST
122 int start = name.indexOf("(");
123 int end = name.indexOf(")");
124
125 String tmp = name.substring(start+1, end);
126 String[] values = tmp.split(";");
127
128 String column = wq + "=" + values[0];
129
130 writer.addColumn(column);
131 }
132 }
133 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org