annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java @ 8980:b194fa64506a

SINFO - show results themes according to spec, either raw data or floating mean values. Some improvements to error handling and handling of empty results.
author gernotbelger
date Thu, 05 Apr 2018 18:30:34 +0200
parents a4f1ac81f26d
children 50cc99579a46
rev   line source
8916
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
2 * Software engineering by
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
5 *
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
9 */
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo.common;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
11
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
12 import java.io.Serializable;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
13 import java.util.ArrayList;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
14 import java.util.Collections;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
15 import java.util.List;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
16
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
17 import org.apache.commons.lang.math.DoubleRange;
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
18 import org.dive4elements.river.artifacts.model.Calculation;
8916
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
20
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
21 /**
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
22 * @author Gernot Belger
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
23 */
8948
a4f1ac81f26d Work on SINFO-FlowDepthMinMax.
gernotbelger
parents: 8916
diff changeset
24 public abstract class AbstractSInfoCalculationResults<RESULT extends AbstractSInfoCalculationResult> implements Serializable {
8916
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
25
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
26 private static final long serialVersionUID = 1L;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
27
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
28 private final List<RESULT> results = new ArrayList<>();
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
29
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
30 private final String calcModeLabel;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
31
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
32 private final String user;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
33
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
34 private final RiverInfo river;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
35
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
36 private final DoubleRange calcRange;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
37
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
38 public AbstractSInfoCalculationResults(final String calcModeLabel, final String user, final RiverInfo river, final DoubleRange calcRange) {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
39 this.calcModeLabel = calcModeLabel;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
40 this.user = user;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
41 this.river = river;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
42 this.calcRange = calcRange;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
43 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
44
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
45 public final String getCalcModeLabel() {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
46 return this.calcModeLabel;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
47 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
48
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
49 public final String getUser() {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
50 return this.user;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
51 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
52
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
53 public final RiverInfo getRiver() {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
54 return this.river;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
55 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
56
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
57 public final DoubleRange getCalcRange() {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
58 return this.calcRange;
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
59 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
60
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
61 public final void addResult(final RESULT result, final Calculation problems) {
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
62 /* we assume error reporting was already done in this case */
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
63 if (result == null)
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
64 return;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
65
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
66 if (result.isEmpty()) {
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
67 problems.addProblem("abstractsinfocalculationresults.emptyResult", result.getLabel());
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
68 return;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
69 }
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8948
diff changeset
70
8916
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
71 this.results.add(result);
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
72 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
73
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
74 public final List<RESULT> getResults() {
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
75 return Collections.unmodifiableList(this.results);
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
76 }
5d5d0051723f Working on outputmodes of tkh calculation
gernotbelger
parents:
diff changeset
77 }

http://dive4elements.wald.intevation.org