annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/SInfoResultRow.java @ 8948:a4f1ac81f26d

Work on SINFO-FlowDepthMinMax. Also rework of result row stuff, in order to reduce abstraction, using result type concept
author gernotbelger
date Wed, 14 Mar 2018 14:10:32 +0100
parents
children
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.io.Serializable;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
13 import java.util.EnumMap;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
14 import java.util.Map;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
15
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
16 import org.dive4elements.artifacts.CallContext;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
17
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
18 /**
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
19 * Generic container for results that come in rows.
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
20 *
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
21 * @author Gernot Belger
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
22 */
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
23 public final class SInfoResultRow implements Serializable {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
24 private static final long serialVersionUID = 1L;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
25
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
26 private final Map<SInfoResultType, Object> values = new EnumMap<>(SInfoResultType.class);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
27
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
28 public static SInfoResultRow create() {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
29 return new SInfoResultRow();
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
30 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
31
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
32 private SInfoResultRow() {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
33 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
34
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
35 public SInfoResultRow putValue(final SInfoResultType type, final Object value) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
36
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
37 this.values.put(type, value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
38
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
39 /* chain me */
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
40 return this;
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
41 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
42
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
43 public String exportValue(final CallContext context, final SInfoResultType type) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
44 final Object value = this.values.get(type);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
45 return type.exportValue(context, value);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
46 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
47
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
48 public double getDoubleValue(final SInfoResultType type) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
49 final Object value = this.values.get(type);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
50 return type.asDouble(value);
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 public Object getValue(final SInfoResultType type) {
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
54 return this.values.get(type);
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
55 }
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents:
diff changeset
56 }

http://dive4elements.wald.intevation.org