Mercurial > dive4elements > river
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 : |