annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractExportContext.java @ 9503:83e6acdf8fc6

Fixed: no rounding during calculations (Meilenstein-2 2.9)
author mschaefer
date Fri, 28 Sep 2018 10:11:06 +0200
parents e60584f2a531
children
rev   line source
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
2 * Software engineering by
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
5 *
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
9 */
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.common;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
11
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
12 import java.text.NumberFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
13
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.CallContext;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.artifacts.resources.Resources;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.utils.Formatter;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
17
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
18 /**
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
19 * @author Domenico Nardi Tironi
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
20 */
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
21 public abstract class AbstractExportContext implements IExportContext {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
22
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
23 private NumberFormat qFormat = null;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
24
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
25 private NumberFormat flowDepthFormat = null;
9357
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
26 private NumberFormat floodDurationFormat = null;
9243
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
27 private NumberFormat salixScenFormat = null;
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
28 private NumberFormat kmFormat = null;
9503
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
29 private NumberFormat intFormat = null;
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
30
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
31 /** The CallContext object. */
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
32 private final CallContext context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
33
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
34 private final AbstractCalculationResults<?> results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
35
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
36 public AbstractExportContext(final CallContext context, final AbstractCalculationResults<?> results) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
37 this.context = context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
38 this.results = results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
39 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
40
9446
e60584f2a531 Added bundu bzws calculation for missing volumes (masses still not yet ready) and results1/2/3
mschaefer
parents: 9357
diff changeset
41 public final CallContext getContext() {
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
42 return this.context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
43 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
44
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
45 @Override
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
46 public final <RESULTS extends AbstractCalculationResults<?>> RESULTS getResults() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
47 @SuppressWarnings("unchecked")
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
48 final RESULTS resultsCast = (RESULTS) this.results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
49 return resultsCast;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
50 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
51
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
52 // copy from AbstractExporter TODO merge with ExportContextPDF
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
53 protected NumberFormat getKmFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
54
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
55 if (this.kmFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
56 this.kmFormat = Formatter.getWaterlevelKM(getContext());
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
57
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
58 return this.kmFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
59 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
60
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
61 public NumberFormat getQFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
62 if (this.qFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
63 this.qFormat = Formatter.getWaterlevelQ(this.context);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
64
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
65 return this.qFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
66 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
67
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
68 public final NumberFormat getFlowDepthFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
69 if (this.flowDepthFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
70 this.flowDepthFormat = Formatter.getFlowDepth(this.context);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
71
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
72 return this.flowDepthFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
73 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
74
9357
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
75 public final NumberFormat getFloodDurationFormatter() {
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
76
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
77 if (this.floodDurationFormat == null)
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
78 this.floodDurationFormat = Formatter.getIntegerFormatter(this.context);
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
79 return this.floodDurationFormat;
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
80 }
5ce50640688c S-Info flood duration: fixed error report output name, changed duration from int to double, added formatter
mschaefer
parents: 9243
diff changeset
81
9243
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
82 public final NumberFormat getSalixScenFormatter() {
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
83 if (this.salixScenFormat == null)
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
84 this.salixScenFormat = Formatter.getSalixLine(this.context);
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
85
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
86 return this.salixScenFormat;
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
87 }
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9205
diff changeset
88
9503
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
89 public final NumberFormat getIntegerFormatter() {
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
90 if (this.intFormat == null)
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
91 this.intFormat = Formatter.getIntegerFormatter(this.context);
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
92
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
93 return this.intFormat;
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
94 }
83e6acdf8fc6 Fixed: no rounding during calculations (Meilenstein-2 2.9)
mschaefer
parents: 9446
diff changeset
95
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
96 protected String msg(final String key) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
97 return Resources.getMsg(this.context.getMeta(), key, key);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
98 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
99
9205
3dae6b78e1da inundationDuration/floodDuration multiple columns+chartLines refactoring
gernotbelger
parents: 9195
diff changeset
100 public final String msg(final String key, final Object... args) {
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
101 return Resources.getMsg(this.context.getMeta(), key, key, args);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
102 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
103
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
104 @Override
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
105 public final String formatRowValue(final ResultRow row, final IResultType type) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
106 return row.exportValue(this.context, type);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
107 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
108 }

http://dive4elements.wald.intevation.org