annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCrossSectionIndexData.java @ 9426:b6e595f1696f

Activated cross section output mode for salix line and implemented some themes preliminary.
author gernotbelger
date Fri, 17 Aug 2018 15:31:16 +0200
parents
children bd5f5d2220fa
rev   line source
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
2 * Software engineering by
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
5 *
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
9 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.uinfo.salix;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
11
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
12 import java.io.Serializable;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
13
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.CallContext;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
15
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
16 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
17 * The 'index' that tells the cross section facet which of my result are to be fetched as a cross section line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
18 *
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
19 * @author Gernot Belger
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
20 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
21 public final class SalixLineCrossSectionIndexData implements Serializable {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
22 private static final long serialVersionUID = 1L;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
23
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
24 private static final SalixLineCrossSectionIndexData SALIX_LINE = new SalixLineCrossSectionIndexData(null, null);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
25
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
26 // REMARK: we know at the moment there is exactly one result
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
27 private final int resultIndex = 0;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
28
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
29 private final Integer scenarioIndex;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
30
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
31 private final String waterlevelName;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
32
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
33 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
34 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
35 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
36 public static final SalixLineCrossSectionIndexData salixLine() {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
37 return SALIX_LINE;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
38 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
39
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
40 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
41 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
42 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
43 public static final SalixLineCrossSectionIndexData scenario(final int scenarioIndex) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
44 return new SalixLineCrossSectionIndexData(scenarioIndex, null);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
45 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
46
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
47 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
48 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
49 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
50 // FIXME: gemeint sind die einzublendenden 'MNW, MW, MHW, HW5' mir nicht klar wo diese Daten herkommen, ggf. aus der
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
51 // Rechnung?
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
52 // FIXME: statt 'name' vielleicht eine enum oder irgend etwas anderes was diese dinger eindeutig referenzieet?
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
53 public static final SalixLineCrossSectionIndexData waterlevel(final String name) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
54 assert name != null;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
55 return new SalixLineCrossSectionIndexData(null, name);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
56 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
57
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
58 private SalixLineCrossSectionIndexData(final Integer scenarioIndex, final String waterlevelName) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
59 this.scenarioIndex = scenarioIndex;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
60 this.waterlevelName = waterlevelName;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
61 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
62
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
63 public double getCrossSectionLine(final SalixLineCalculationResults results, final double currentKm, final double nextKm,
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
64 final double prevKm, final CallContext context) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
65
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
66 final SalixLineCalculationResult result = results.getResults().get(this.resultIndex);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
67
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
68 if (this.scenarioIndex != null) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
69 // fetch scenario result data = salix line value at km
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
70 return result.getSalixScenarioValue(currentKm, nextKm, prevKm, this.scenarioIndex);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
71 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
72
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
73 if (this.waterlevelName != null) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
74 // fetch waterlevel result data = salix line value at km
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
75 return result.getWaterlevelValue(currentKm, nextKm, prevKm, this.waterlevelName);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
76 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
77
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
78 // fetch normal result data = salix line value at km
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
79 return result.getSalixValue(currentKm, nextKm, prevKm);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
80 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
81 }

http://dive4elements.wald.intevation.org