annotate artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelDescriptionBuilder.java @ 9040:5294114b1df4

Fixed/changed some FIXMEs/TODOs
author gernotbelger
date Wed, 02 May 2018 12:19:31 +0200
parents 05b5588bdd94
children 86d2cbfe7f7f
rev   line source
8933
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
2 * Software engineering by
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
5 *
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
9 */
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.exports;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
11
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
12 import java.text.NumberFormat;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
13
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.CallContext;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.artifacts.D4EArtifact;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.artifacts.WINFOArtifact;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.model.WQKms;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.resources.Resources;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.utils.Formatter;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.utils.RiverUtils;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.utils.RiverUtils.WQ_MODE;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
22
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
23 /**
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
24 * Helper that encapsulates the logic how the 'description' column in waterlevel exporting is generated.
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
25 * TODO: this class should also be used in WaterlevelExport (all code is copied from there), but this would involve
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
26 * heavy testing and we leave this to the one who is responsible to clean up this mess.
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
27 *
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
28 * @author Gernot Belger
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
29 */
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
30 public final class WaterlevelDescriptionBuilder {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
31
9040
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
32 private static final String CSV_META_Q = "export.waterlevel.csv.meta.q";
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
33
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
34 // FIXME: unit 'NN + m' is wrong:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
35 // - use river-elevation system in case of absolute heights
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
36 // - use 'cm am Pegel' in other cases
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
37 private static final String CSV_META_W = "export.waterlevel.csv.meta.w";
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
38
8933
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
39 private static final String CSV_Q_DESC_HEADER = "export.waterlevel.csv.header.q.desc";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
40
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
41 // FIXME: missing in resource-files! hence always the default is used...
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
42 private static final String CSV_W_DESC_HEADER = "export.waterlevel.csv.header.w.desc";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
43
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
44 private static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
45
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
46 private static final String DEFAULT_CSV_W_DESC_HEADER = "W/Pegel [cm]";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
47
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
48 private final boolean isQ;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
49
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
50 private final boolean atGauge;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
51
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
52 private final CallContext context;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
53
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
54 private final WQ_MODE mode;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
55
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
56 private final D4EArtifact artifact;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
57
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
58 public WaterlevelDescriptionBuilder(final D4EArtifact artifact, final CallContext context) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
59 this.context = context;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
60
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
61 // REMARK: taken from WaterlevelExporter, should be moved into WInfoArtifact
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
62 this.mode = RiverUtils.getWQMode(artifact);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
63 this.atGauge = this.mode == WQ_MODE.QGAUGE || this.mode == WQ_MODE.WGAUGE;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
64 this.isQ = this.mode == WQ_MODE.QGAUGE || this.mode == WQ_MODE.QFREE;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
65
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
66 this.artifact = artifact;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
67 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
68
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
69 public boolean isAtGauge() {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
70 return this.atGauge;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
71 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
72
9040
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
73 public String getMetadata() {
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
74
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
75 switch (this.mode) {
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
76 case QFREE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
77 case QGAUGE: {
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
78 final String data = getMetadataQ();
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
79 if (data == null)
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
80 return null;
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
81
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
82 return Resources.getMsg(this.context.getMeta(), CSV_META_Q, CSV_META_Q, data);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
83 }
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
84
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
85 // TODO: probably none, default is wrong here, but this how it was implemented in WaterlevelExporter.
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
86 case WFREE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
87 case WGAUGE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
88 case NONE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
89 default:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
90 final double[] ws = RiverUtils.getWs(this.artifact);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
91
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
92 if (ws == null || ws.length <= 0)
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
93 return null;
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
94
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
95 // FIXME: we also have here a case single?!
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
96
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
97 // FIXME: use correct wst unit!
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
98
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
99 // FIXME: bad formatting ofd values. Use the correct Formatter!
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
100 final String lower = String.valueOf(ws[0]);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
101 final String upper = String.valueOf(ws[ws.length - 1]);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
102
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
103 return Resources.getMsg(this.context.getMeta(), CSV_META_W, CSV_META_W, lower, upper);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
104 }
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
105 }
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
106
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
107 private String getMetadataQ() {
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
108
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
109 final double[] qs = RiverUtils.getQs(this.artifact);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
110 if (qs == null || qs.length == 0)
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
111 return null;
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
112
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
113 final RiverUtils.WQ_INPUT input = RiverUtils.getWQInputMode(this.artifact);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
114
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
115 switch (input) {
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
116 case ADAPTED:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
117 case RANGE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
118 return String.valueOf(qs[0]) + " - " + String.valueOf(qs[qs.length - 1]);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
119
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
120 case SINGLE:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
121 String data = String.valueOf(qs[0]);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
122 for (int i = 1; i < qs.length; i++)
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
123 data += ", " + String.valueOf(qs[i]);
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
124 return data;
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
125
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
126 default:
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
127 return null;
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
128 }
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
129 }
5294114b1df4 Fixed/changed some FIXMEs/TODOs
gernotbelger
parents: 8933
diff changeset
130
8933
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
131 public String getColumnHeader() {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
132
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
133 if (!this.atGauge)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
134 return null;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
135
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
136 // REMARK: bad inter-dependency to WaterlevelExporter, but we want to really copy the logic from WInfo
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
137 if (this.isQ)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
138 return Resources.getMsg(this.context.getMeta(), CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
139
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
140 return Resources.getMsg(this.context.getMeta(), CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
141 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
142
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
143 public String getDesc(final WQKms wqkms) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
144 return getDesc(wqkms, this.isQ);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
145 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
146
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
147 public String getDesc(final WQKms wqkms, final boolean isQoverride) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
148 String colDesc = "";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
149
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
150 if (this.artifact instanceof WINFOArtifact && isQoverride) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
151 colDesc = getCSVRowTitle((WINFOArtifact) this.artifact, wqkms);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
152 } else if (!isQoverride) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
153 final Double value = RiverUtils.getValueFromWQ(wqkms);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
154 colDesc = (value != null) ? Formatter.getWaterlevelW(this.context).format(value) : null;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
155 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
156
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
157 if (this.artifact instanceof WINFOArtifact) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
158 if (wqkms != null && wqkms.getRawValue() != null) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
159 final WINFOArtifact winfo = (WINFOArtifact) this.artifact;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
160 colDesc = RiverUtils.getNamedMainValue(winfo, wqkms.getRawValue());
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
161 // For 'W am Pegel' s
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
162 if (colDesc == null) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
163 final Double value = RiverUtils.getValueFromWQ(wqkms);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
164 colDesc = (value != null) ? Formatter.getWaterlevelW(this.context).format(value) : null;
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
165 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
166 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
167 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
168
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
169 if (colDesc == null)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
170 return "";
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
171
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
172 /*
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
173 * Quick hack. Can be removed when database strings are
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
174 * adapted or left in here as it should never be harmful.
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
175 */
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
176 return colDesc.replace("Amtl.Festlegung_", "Amtl. ");
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
177 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
178
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
179 private String getCSVRowTitle(final WINFOArtifact winfo, final WQKms wqkms) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
180
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
181 if (this.mode == WQ_MODE.WFREE || this.mode == WQ_MODE.QGAUGE)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
182 return localizeWQKms(wqkms);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
183
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
184 final Double v = wqkms.getRawValue();
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
185
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
186 final String nmv = RiverUtils.getNamedMainValue(winfo, v);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
187
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
188 if (nmv != null && nmv.length() > 0) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
189 return RiverUtils.stripNamedMainValue(nmv);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
190 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
191
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
192 return localizeWQKms(wqkms);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
193 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
194
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
195 /**
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
196 * Get a string like 'W=' or 'Q=' with a number following in localized
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
197 * format.
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
198 */
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
199 private String localizeWQKms(final WQKms wqkms) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
200 final Double rawValue = wqkms.getRawValue();
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
201
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
202 if (rawValue == null) {
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
203 return wqkms.getName();
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
204 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
205
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
206 final NumberFormat nf = Formatter.getRawFormatter(this.context);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
207
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
208 if (this.mode == WQ_MODE.WFREE || this.mode == WQ_MODE.WGAUGE)
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
209 return "W=" + nf.format(rawValue);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
210
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
211 return "Q=" + nf.format(rawValue);
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
212 }
05b5588bdd94 Extracting some winfo logic without breaking old code
gernotbelger
parents:
diff changeset
213 }

http://dive4elements.wald.intevation.org