annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineAccess.java @ 9309:9a9f076d5716

Work on U-Info salix line calculation
author mschaefer
date Wed, 25 Jul 2018 19:29:25 +0200
parents c08d5cfa4981
children a978b601a034
rev   line source
9062
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
2 * Software engineering by
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
5 *
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
9 */
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
10
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
11 package org.dive4elements.river.artifacts.uinfo.salix;
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
12
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
13 import org.dive4elements.river.artifacts.access.RangeAccess;
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
14 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.artifacts.uinfo.UinfoCalcMode;
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
16
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
17 /**
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
18 * Access to the flow depth calculation type specific SInfo artifact data.
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
19 * REMARK: this class is NOT intended to be hold in the results (or anywhere else), in order to avoid a permanent
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
20 * reference to the artifact instance.
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
21 * Hence we do NOT cache any data.
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
22 *
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
23 * @author Gernot Belger
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
24 */
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
25 final class SalixLineAccess extends RangeAccess {
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
26
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
27 static final String FIELD_DIFFID_CURRENT = "diffid_current";
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
28 static final String FIELD_DIFFID_HIST = "diffid_historical";
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
29 // calculation_mode
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
30 // ld_from , ld_to
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
31 // use_scenario (boolean)
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
32 // ld_from_part; ld_to_part
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
33 // scenario_selection (mögliche Werte:"scenarioType.option1" "scenarioType.option2" "scenarioType.option3"
9062
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
34
9309
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
35 /**
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
36 * Type of a salix line scenario with key property used by the client
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
37 */
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
38 public enum ScenarioType {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
39 NONE(""), //
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
40 REGIONAL("scenarioType.option1"), //
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
41 SUPRAREGIONAL("scenarioType.option2"), //
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
42 HISTORICAL("scenarioType.option3");
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
43
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
44 private String key;
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
45
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
46 private ScenarioType(final String key) {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
47 this.key = key;
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
48 }
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
49
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
50 public static ScenarioType forKey(final String key) {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
51 for (final ScenarioType st : ScenarioType.values()) {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
52 if (st.getKey().equals(key))
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
53 return st;
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
54 }
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
55 return NONE;
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
56 }
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
57
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
58 public String getKey() {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
59 return this.key;
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
60 }
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
61 }
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
62
9062
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
63 public SalixLineAccess(final UINFOArtifact artifact) {
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
64 super(artifact);
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
65
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
66 /* assert calculation mode */
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
67 final UinfoCalcMode calculationMode = artifact.getCalculationMode();
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
68 assert (calculationMode == UinfoCalcMode.uinfo_salix_line);
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
69 }
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
70
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
71 public boolean getUseScenario() {
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
72 return super.getBoolean("use_scenario");
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
73 }
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
74
9309
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
75 public ScenarioType getScenario() {
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
76 if (getUseScenario())
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
77 return ScenarioType.forKey(getString("scenario_selection"));
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
78 else
9a9f076d5716 Work on U-Info salix line calculation
mschaefer
parents: 9246
diff changeset
79 return ScenarioType.NONE;
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
80 }
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
81
9222
5a0e8d76582e uinfo.salix regional workflow
gernotbelger
parents: 9070
diff changeset
82 public Double getFromPart() {
5a0e8d76582e uinfo.salix regional workflow
gernotbelger
parents: 9070
diff changeset
83 return getDouble("ld_from_part");
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
84 }
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
85
9222
5a0e8d76582e uinfo.salix regional workflow
gernotbelger
parents: 9070
diff changeset
86 public Double getToPart() {
5a0e8d76582e uinfo.salix regional workflow
gernotbelger
parents: 9070
diff changeset
87 return getDouble("ld_to_part");
9068
a5cf8d7bff3c access uinfo.salx; tablePanel edit/non-edit merge
gernotbelger
parents: 9062
diff changeset
88 }
9243
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
89
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
90 public int[] getRegionalScenarioIntegers() {
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
91 // super.getIntArray("sedimentheight"); DOES NOT WORK!
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
92 final String ints = super.getString("sedimentheight");
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
93 if (ints != null) {
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
94 final String[] intsSplit = ints.split(" ");
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
95 final int[] values = new int[intsSplit.length];
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
96 for (int i = 0; i < intsSplit.length; i++) {
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
97 values[i] = Integer.valueOf(intsSplit[i]);
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
98 }
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
99 return values;
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
100 }
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
101 return null;
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
102 }
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
103
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
104 public String getSupraRegionalString() {
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
105 return super.getString("supraregional_table");
da0bdbcd6f09 salix.supraRegional+Regional results
gernotbelger
parents: 9222
diff changeset
106 }
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
107
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
108 public Integer getYear() {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
109 if (getString("ye_select").equals("state.uinfo.year")) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
110 return super.getInteger("singleyear");
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
111 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
112 return null;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
113 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
114
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
115 public Integer getEpoch() {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
116 if (getString("ye_select").equals("state.uinfo.epoch")) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
117 return super.getInteger("singleepoch");
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
118 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
119 return null;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9243
diff changeset
120 }
9062
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents:
diff changeset
121 }

http://dive4elements.wald.intevation.org