annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractExportContext.java @ 9205:3dae6b78e1da

inundationDuration/floodDuration multiple columns+chartLines refactoring
author gernotbelger
date Mon, 02 Jul 2018 19:01:09 +0200
parents a4121ec450d6
children da0bdbcd6f09
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;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
26
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
27 private NumberFormat kmFormat = null;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
28
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
29 /** The CallContext object. */
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
30 private final CallContext context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
31
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
32 private final AbstractCalculationResults<?> results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
33
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
34 public AbstractExportContext(final CallContext context, final AbstractCalculationResults<?> results) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
35 this.context = context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
36 this.results = results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
37 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
38
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
39 protected final CallContext getContext() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
40 return this.context;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
41 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
42
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
43 @Override
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
44 public final <RESULTS extends AbstractCalculationResults<?>> RESULTS getResults() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
45 @SuppressWarnings("unchecked")
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
46 final RESULTS resultsCast = (RESULTS) this.results;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
47 return resultsCast;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
48 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
49
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
50 // copy from AbstractExporter TODO merge with ExportContextPDF
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
51 protected NumberFormat getKmFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
52
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
53 if (this.kmFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
54 this.kmFormat = Formatter.getWaterlevelKM(getContext());
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
55
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
56 return this.kmFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
57 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
58
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
59 public NumberFormat getQFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
60 if (this.qFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
61 this.qFormat = Formatter.getWaterlevelQ(this.context);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
62
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
63 return this.qFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
64 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
65
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
66 public final NumberFormat getFlowDepthFormatter() {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
67 if (this.flowDepthFormat == null)
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
68 this.flowDepthFormat = Formatter.getFlowDepth(this.context);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
69
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
70 return this.flowDepthFormat;
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
71 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
72
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
73 protected String msg(final String key) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
74 return Resources.getMsg(this.context.getMeta(), key, key);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
75 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
76
9205
3dae6b78e1da inundationDuration/floodDuration multiple columns+chartLines refactoring
gernotbelger
parents: 9195
diff changeset
77 public final String msg(final String key, final Object... args) {
9195
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
78 return Resources.getMsg(this.context.getMeta(), key, key, args);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
79 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
80
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
81 @Override
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
82 public final String formatRowValue(final ResultRow row, final IResultType type) {
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
83 return row.exportValue(this.context, type);
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
84 }
a4121ec450d6 'ca.'-issue
gernotbelger
parents:
diff changeset
85 }

http://dive4elements.wald.intevation.org