annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/DischargeState.java @ 9390:f575ff573cbb

"Name der Peilung" columname minfo.
author gernotbelger
date Thu, 09 Aug 2018 15:22:31 +0200
parents e4606eae8ea5
children
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
9 package org.dive4elements.river.artifacts.states;
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
6185
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
11 import java.util.Collections;
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
12 import java.util.Comparator;
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
13 import java.util.List;
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import org.apache.log4j.Logger;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
16 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
17 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
18 import org.dive4elements.artifacts.common.model.KVP;
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
19 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
20 import org.dive4elements.river.model.DischargeZone;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3927
diff changeset
21 import org.dive4elements.river.model.River;
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
22 import org.dive4elements.river.utils.RiverUtils;
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 public class DischargeState extends MultiIntArrayState {
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
26 public static final String MAIN_CHANNEL = "main_channel";
3759
e54f8dc222cf Renamed input parameters of MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3087
diff changeset
27 public static final String TOTAL_CHANNEL = "total_channel";
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6186
diff changeset
29 private static final Logger log = Logger.getLogger(DischargeState.class);
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
3927
208a891c21b5 Partly fix issue871.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3759
diff changeset
31 /** Let client display a matrix. */
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 @Override
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 public String getUIProvider() {
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
34 return "parameter-matrix-flowvelocity";
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 /**
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 * This method fetches all DischargeZones for a given river (extracted from
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 * <i>artifact</i>) and returns a KVP[] where the key is the ID of the
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 * DischargeZone and the value is a string that consists of lower discharge
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 * and upper discharge.
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 *
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
43 * @param artifact
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
44 * Needs to be a D4EArtifact that provides river
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
45 * information.
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
46 * @param parameterName
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
47 * The name of a parameter.
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 *
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 * @return a KVP[].
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 */
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 @Override
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
52 protected KVP<Integer, String>[] getOptions(final Artifact artifact, final String parameterName) throws IllegalArgumentException {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 if (!testParameterName(parameterName)) {
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
54 throw new IllegalArgumentException("Invalid parameter for state: '" + parameterName + "'");
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
57 final List<DischargeZone> zones = getDischargeZones(artifact);
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
59 final KVP[] kvp = new KVP[zones.size()];
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
6185
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
61 Collections.sort(zones, new Comparator<DischargeZone>() {
6186
a07521dca5b5 Add an Override to the compare method
Andre Heinecke <aheinecke@intevation.de>
parents: 6185
diff changeset
62 @Override
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
63 public int compare(final DischargeZone a, final DischargeZone b) {
6185
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
64 return a.getValue().compareTo(b.getValue());
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
65 }
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
66 });
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
6185
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
68 int i = 0;
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
69
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
70 for (final DischargeZone zone : zones) {
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
71 final String lower = zone.getLowerDischarge();
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
72 final String upper = zone.getUpperDischarge();
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 if (lower.equals(upper)) {
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 kvp[i] = new KVP(zone.getId(), lower);
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
76 } else {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 kvp[i] = new KVP(zone.getId(), lower + " - " + upper);
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 }
6185
7573683925a3 Add sorting for discharge value
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
79 i++;
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 return kvp;
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
85 @Override
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
86 protected String getLabelFor(final CallContext cc, final String parameterName, final int value) throws IllegalArgumentException {
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
87 if (!testParameterName(parameterName)) {
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
88 throw new IllegalArgumentException("Invalid parameter for state: '" + parameterName + "'");
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
89 }
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
90
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
91 final DischargeZone zone = DischargeZone.getDischargeZoneById(value);
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
92
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
93 if (zone == null) {
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
94 throw new IllegalArgumentException("Invalid id for DischargeZone: '" + value + "'");
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
95 }
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
96
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
97 final String lo = zone.getLowerDischarge();
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
98 final String hi = zone.getUpperDischarge();
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
99
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
100 return hi != null && !lo.equals(hi) ? lo + " - " + hi : lo;
2705
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
101 }
71f072d8b3d8 Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2696
diff changeset
102
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 /**
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 * This method might be used to test, if a parameter name is handled by this
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 * state.
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 *
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
107 * @param parameterName
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
108 * The name of a parameter.
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 *
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 * @return true, if parameterName is one of <i>MAIN_CHANNEL</i> or
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
111 * <i>TOTAL_CHANNEL</i>. Otherwise false.
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 */
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
113 protected boolean testParameterName(final String parameterName) {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 if (parameterName == null || parameterName.length() == 0) {
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 return false;
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
116 } else if (parameterName.equals(MAIN_CHANNEL)) {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 return true;
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
118 } else if (parameterName.equals(TOTAL_CHANNEL)) {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 return true;
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
120 } else {
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 return false;
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 /**
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 * Returns all discharge zones for a given river. The river information is
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
127 * extracted from <i>artifact</i> using RiverUtils.getRiver().
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 *
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
129 * @param artifact
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
130 * Needs to be a D4EArtifact that stores a rivername.
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 *
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 * @return a list of DischargeZones.
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 *
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
134 * @throws IllegalArgumentException
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
135 * if no river information is provided by
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
136 * <i>artifact</i>.
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 */
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
138 protected List<DischargeZone> getDischargeZones(final Artifact artifact) throws IllegalArgumentException {
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
139 final River river = RiverUtils.getRiver((D4EArtifact) artifact);
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 if (river == null) {
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 throw new IllegalArgumentException("No river found");
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 8202
diff changeset
145 final List<DischargeZone> zones = DischargeZone.getDischargeZones(river);
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6186
diff changeset
147 log.debug("Found " + zones.size() + " DischargeZones.");
2696
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 return zones;
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 }
1bc35de0b786 Improved the states for MINFO flow velocity calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org