annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultType.java @ 8949:09e4a4909814

Distinguish between csv and pdf column headers
author gernotbelger
date Wed, 14 Mar 2018 18:34:34 +0100
parents a4f1ac81f26d
children b0aeed4c97c1
rev   line source
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
2 * Software engineering by
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
5 *
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
9 */
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo.common;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
11
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
12 import java.text.NumberFormat;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
13 import java.util.HashMap;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
14 import java.util.Locale;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
15 import java.util.Map;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
16
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
17 import org.apache.commons.lang.StringUtils;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
19 import org.dive4elements.artifacts.CallMeta;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.sinfo.SInfoI18NStrings;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.utils.Formatter;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.utils.RiverUtils;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
25
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
26 /**
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
27 * Result type for data that goes into {@link SInfoResultRow}s.
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
28 *
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
29 * @author Gernot Belger
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
30 */
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
31 public enum SInfoResultType {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
32
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
33 station(SInfoI18NStrings.UNIT_KM, SInfoI18NStrings.CSV_KM_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
34 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
35 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
36 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
37 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
38 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
39
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
40 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
41 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
42 return Formatter.getWaterlevelKM(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
43 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
44 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
45
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
46 waterlevel(null, SInfoI18NStrings.CSV_WATERLEVEL_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
47 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
48 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
49 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
50 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
51 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
52
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
53 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
54 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
55 // REMARK: other modules use Formatter.getWaterlevelW(context) instead, but that format with a variable number of
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
56 // digits.
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
57 return Formatter.getFlowDepth(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
58 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
59 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
60
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
61 waterlevelLabel(SInfoI18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LABEL_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
62 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
63 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
64 return exportStringValue(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
65 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
66
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
67 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
68 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
69 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
70 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
71 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
72
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
73 discharge(SInfoI18NStrings.UNIT_CUBIC_M, SInfoI18NStrings.CSV_DISCHARGE_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
74 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
75 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
76 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
77 final double roundedDischarge = RiverUtils.roundQ(doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
78 return exportDoubleValue(context, roundedDischarge);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
79 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
80
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
81 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
82 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
83 return Formatter.getWaterlevelQ(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
84 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
85 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
86
8949
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
87 // FIXME: use pgetPdfHeader instead of getCsvHeader
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
88
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
89 meanBedHeight(null, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER, SInfoI18NStrings.CSV_MEAN_BED_HEIGHT_HEADER_SHORT) {
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
90 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
91 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
92 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
93 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
94 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
95
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
96 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
97 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
98 return Formatter.getMeanBedHeight(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
99 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
100 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
101
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
102 soundingLabel(SInfoI18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_SOUNDING_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
103 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
104 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
105 return exportStringValue(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
106 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
107
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
108 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
109 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
110 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
111 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
112 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
113
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
114 flowdepthmin(SInfoI18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MIN_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
115 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
116 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
117 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
118 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
119 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
120
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
121 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
122 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
123 return Formatter.getFlowDepth(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
124 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
125 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
126
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
127 flowdepthmax(SInfoI18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_MAX_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
128 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
129 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
130 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
131 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
132 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
133
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
134 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
135 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
136 return Formatter.getFlowDepth(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
137 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
138 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
139
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
140 gaugeLabel(SInfoI18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_GAUGE_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
141 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
142 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
143 return exportStringValue(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
144 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
145
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
146 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
147 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
148 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
149 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
150 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
151
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
152 location(SInfoI18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LOCATION_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
153 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
154 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
155 return exportStringValue(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
156 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
157
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
158 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
159 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
160 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
161 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
162 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
163 soilkind(SInfoI18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_TKHKIND_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
164 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
165 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
166
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
167 if (value == null)
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
168 return StringUtils.EMPTY;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
169
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
170 final SoilKind kind = (SoilKind) value;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
171
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
172 final String key = SInfoI18NStrings.PREFIX_TKH_KIND + kind.name();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
173 return Resources.getMsg(context.getMeta(), key, key);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
174 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
175
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
176 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
177 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
178 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
179 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
180 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
181 flowdepth(SInfoI18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTH_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
182 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
183 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
184 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
185 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
186 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
187
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
188 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
189 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
190 return Formatter.getFlowDepth(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
191 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
192 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
193 d50(null, null) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
194 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
195 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
196 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
197 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
198 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
199
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
200 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
201 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
202 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
203 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
204 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
205 velocity(null, null) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
206 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
207 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
208 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
209 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
210 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
211
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
212 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
213 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
214 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
215 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
216 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
217 tau(null, null) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
218 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
219 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
220 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
221 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
222 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
223
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
224 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
225 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
226 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
227 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
228 },
8949
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
229 tkh(SInfoI18NStrings.UNIT_CM, SInfoI18NStrings.CSV_TKH_HEADER, SInfoI18NStrings.CSV_TKH_HEADER_SHORT) {
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
230 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
231 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
232 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
233 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
234 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
235
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
236 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
237 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
238 return Formatter.getTkh(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
239 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
240 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
241 tkhup(SInfoI18NStrings.UNIT_CM, null) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
242 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
243 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
244 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
245 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
246 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
247
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
248 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
249 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
250 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
251 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
252 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
253 tkhdown(SInfoI18NStrings.UNIT_CM, null) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
254 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
255 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
256 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
257 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
258 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
259
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
260 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
261 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
262 throw new UnsupportedOperationException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
263 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
264 },
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
265 flowdepthtkh(SInfoI18NStrings.UNIT_M, SInfoI18NStrings.CSV_FLOWDEPTHTKH_HEADER) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
266 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
267 public String exportValue(final CallContext context, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
268 final double doubleValue = asDouble(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
269 return exportDoubleValue(context, doubleValue);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
270 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
271
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
272 @Override
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
273 protected NumberFormat createFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
274 return Formatter.getFlowDepth(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
275 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
276 };
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
277
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
278 /* Cache for formatters because Formatter will always create new formats (which is very expensive) */
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
279 private final Map<Locale, NumberFormat> formatters = new HashMap<>();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
280
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
281 private final String unit;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
282
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
283 private final String csvHeader;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
284
8949
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
285 private final String pdfHeader;
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
286
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
287 private SInfoResultType(final String unit, final String csvAndPdfHeader) {
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
288 this(unit, csvAndPdfHeader, csvAndPdfHeader);
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
289 }
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
290
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
291 private SInfoResultType(final String unit, final String csvHeader, final String pdfHeader) {
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
292 this.unit = unit;
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
293 this.csvHeader = csvHeader;
8949
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
294 this.pdfHeader = pdfHeader;
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
295 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
296
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
297 public abstract String exportValue(final CallContext context, final Object value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
298
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
299 protected final String exportStringValue(final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
300
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
301 if (value == null)
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
302 return StringUtils.EMPTY;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
303
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
304 if (!(value instanceof String))
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
305 throw new IllegalStateException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
306
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
307 return (String) value;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
308 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
309
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
310 protected final double asDouble(final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
311 if (value == null)
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
312 return Double.NaN;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
313
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
314 if (!(value instanceof Number))
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
315 throw new IllegalStateException();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
316
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
317 final Number number = (Number) value;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
318 return number.doubleValue();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
319 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
320
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
321 protected final String exportDoubleValue(final CallContext context, final double value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
322 if (Double.isNaN(value))
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
323 return StringUtils.EMPTY;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
324
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
325 final NumberFormat formatter = getFormatter(context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
326 return formatter.format(value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
327 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
328
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
329 private NumberFormat getFormatter(final CallContext context) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
330 final CallMeta meta = context.getMeta();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
331 final Locale locale = Resources.getLocale(meta);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
332
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
333 if (!this.formatters.containsKey(locale))
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
334 this.formatters.put(locale, createFormatter(context));
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
335
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
336 return this.formatters.get(locale);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
337 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
338
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
339 protected abstract NumberFormat createFormatter(CallContext context);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
340
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
341 public final String getCsvHeader() {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
342 return this.csvHeader;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
343 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
344
8949
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
345 public String getPdfHeader(final CallMeta meta) {
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
346 return Resources.getMsg(meta, this.pdfHeader, this.pdfHeader);
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
347 }
09e4a4909814 Distinguish between csv and pdf column headers
gernotbelger
parents: 8948
diff changeset
348
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
349 public final String getUnit() {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
350 return this.unit;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
351 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
352 }

http://dive4elements.wald.intevation.org