annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/DistanceOnlyPartHistoricalSelect.java @ 9321:a978b601a034

Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
author gernotbelger
date Fri, 27 Jul 2018 10:25:09 +0200
parents f48a8dc78529
children e014eca211a3
rev   line source
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
3 *
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
7 */
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
8
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.artifacts.uinfo.salix;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
10
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
11 import java.util.HashMap;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
12 import java.util.Iterator;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
13 import java.util.List;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
14 import java.util.Map;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
15 import java.util.TreeMap;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
16
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
17 import org.dive4elements.artifacts.Artifact;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
19 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.states.AddTableDataHelper;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.states.DistanceOnlySelect;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.model.BedHeight;
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
25 import org.dive4elements.river.model.River;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
26 import org.dive4elements.river.utils.Formatter;
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
27 import org.w3c.dom.Element;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
28
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
29 public class DistanceOnlyPartHistoricalSelect extends DistanceOnlySelect {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
30
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
31 private static final long serialVersionUID = 1L;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
32
9321
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
33 private List<BedHeight> bhs = null;
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
34 private Integer epoch = null;
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
35 private Integer year = null;
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
36 private Double lowerKm = null;
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
37 private Double upperKm = null;
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
38 private River river = null;
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
39
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
40 @Override
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
41 protected String getUIProvider() {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
42 return "distance_only_part_historical_panel";
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
43 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
44
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
45 @Override
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
46 protected String getTitle(final CallContext context) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
47 // REMARK: that is how it should be: return Resources.getMsg(context.getMeta(), getID());
9271
f48a8dc78529 uinfo.salix details
gernotbelger
parents: 9247
diff changeset
48 return Resources.getMsg(context.getMeta(), "state.title.salix.historical.distance_part_state");
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
49 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
50
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
51 @Override
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
52 protected void appendItems(final Artifact artifact, final ElementCreator creator, final String name, final CallContext context, final Element select) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
53 final String datakey = "bedheights_for_part";
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
54
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
55 try {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
56 if (datakey.equals(name)) {
9321
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
57 makeDataSourceYearEpoch(creator, select, context, getBedheights(artifact)); // ist nur n test
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
58 } else if (name.equals("ld_from_part")) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
59
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
60 final SalixLineAccess access = new SalixLineAccess((UINFOArtifact) artifact);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
61 final double lowerSoundings = this.getLowerUpperKmRange(getBedheights(artifact))[0];
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
62 final double lowerKm = access.getLowerKm() > lowerSoundings ? access.getLowerKm() : lowerSoundings;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
63
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
64 creator.addAttr(select, "type", "options", true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
65
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
66 final Element item = creator.create("item");
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
67 creator.addAttr(item, "label", "from_test", true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
68 creator.addAttr(item, "value", String.valueOf(lowerKm), true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
69
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
70 select.appendChild(item);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
71 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
72
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
73 else if (name.equals("ld_to_part")) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
74 final SalixLineAccess access = new SalixLineAccess((UINFOArtifact) artifact);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
75 final double upperSoundings = this.getLowerUpperKmRange(getBedheights(artifact))[1];
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
76 final double upperKm = access.getUpperKm() < upperSoundings ? access.getUpperKm() : upperSoundings;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
77
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
78 creator.addAttr(select, "type", "options", true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
79
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
80 final Element item = creator.create("item");
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
81 creator.addAttr(item, "label", "to_test", true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
82 creator.addAttr(item, "value", String.valueOf(upperKm), true);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
83
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
84 select.appendChild(item);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
85
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
86 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
87 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
88 catch (
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
89
9321
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
90 final IllegalArgumentException iae) {
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
91 iae.printStackTrace();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
92 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
93 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
94
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
95 private List<BedHeight> getBedheights(final Artifact artifact) {
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
96
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
97 final SalixLineAccess access = new SalixLineAccess((UINFOArtifact) artifact); // improved lazy-loading
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
98 final Integer year = access.getYear();
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
99 final Integer epoch = access.getEpoch();
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
100 final River river = access.getRiver(); // comparable? workflow does not allow return and change anyway...
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
101 final Double lower = access.getLowerKm();
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
102 final Double upper = access.getUpperKm();
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
103 if (!(this.year == year && this.epoch == epoch && this.river == river && this.lowerKm == lower && this.upperKm == upper)) {
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
104 this.bhs = null;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
105 }
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
106 if (this.bhs == null) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
107 final boolean isEpoch = epoch == null ? false : true;
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
108 this.bhs = BedHeight.getBedHeightYearEpoch(isEpoch, isEpoch ? epoch : year, river, lower, upper);
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
109 this.year = year;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
110 this.epoch = epoch;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
111 this.river = river;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
112 this.lowerKm = lower;
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
113 this.upperKm = upper;
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
114 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
115 return this.bhs;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
116
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
117 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
118
9321
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
119 private static final void makeDataSourceYearEpoch(final ElementCreator creator, final Element select, final CallContext context,
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
120 final List<BedHeight> bedheights) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
121
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
122 final AddTableDataHelper helper = new AddTableDataHelper(creator, select, "year", context.getMeta());
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
123
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
124 // TODO: probably aggregating results, no sound-row, output as single row
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
125
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
126 int year = 0; // hässlich, aber kommt vermutlich eh bald weg
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
127 if (bedheights != null && bedheights.size() > 0)
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
128 year = bedheights.get(0).getYear(); // das jahr/epoche ist immer dasselbe
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
129
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
130 helper.addColumn(0, "year", "60", "year", "INTEGER", "LEFT", null);
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
131 helper.addColumn(1, "range", "130", "state.uinfo.salix.historical.km_range_part", "STRING", "LEFT", null);
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
132 helper.addColumn(2, "description", "500", "uinfo.salix.sounding", "STRING", "LEFT", null);
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
133
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
134 final TreeMap<String, String> bedHeightSorted = new TreeMap<>();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
135 final double min = Double.MAX_VALUE;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
136 final double max = -Double.MAX_VALUE;
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
137 final java.text.NumberFormat formatter = Formatter.getCalculationKm(context.getMeta());
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
138
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
139 for (final BedHeight bh : bedheights) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
140 final org.dive4elements.river.model.Range range = BedHeight.getRangeFromBedHeights(bh);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
141 final Double from = range.getA().doubleValue(); // NullPointer check??
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
142 final Double to = range.getB().doubleValue();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
143
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
144 bedHeightSorted.put(bh.getDescription(), formatter.format(from) + " - " + formatter.format(to));
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
145 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
146 final Iterator<String> iterator = bedHeightSorted.keySet().iterator();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
147 while (iterator.hasNext()) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
148 final String descr = iterator.next();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
149 final String fromTo = bedHeightSorted.get(descr);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
150 final Map<String, String> row = new HashMap<>();
9247
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
151 row.put("year", String.valueOf(year));
1ec3b891ab02 salix.historical.distance_only_part detail work
gernotbelger
parents: 9246
diff changeset
152 row.put("range", fromTo);
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
153 row.put("description", descr);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
154 helper.addRow(row);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
155 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
156
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
157 helper.submitMapToXml();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
158 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
159
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
160 private double[] getLowerUpperKmRange(final List<BedHeight> bedheights) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
161 double min = Double.MAX_VALUE;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
162 double max = -Double.MAX_VALUE;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
163
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
164 for (final BedHeight bh : bedheights) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
165 final org.dive4elements.river.model.Range range = BedHeight.getRangeFromBedHeights(bh);
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
166 try {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
167 final Double from = range.getA().doubleValue(); // NullPointer check?? -> try catch
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
168 final Double to = range.getB().doubleValue();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
169
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
170 final double upper = to > from ? to : from;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
171 final double lower = from < to ? from : to;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
172 if (upper > max)
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
173 max = upper;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
174
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
175 if (lower < min)
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
176 min = lower;
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
177 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
178 catch (final Exception e) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
179 e.printStackTrace();
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
180 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
181
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
182 }
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
183 return new double[] { min, max };
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents:
diff changeset
184 }
9321
a978b601a034 Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
gernotbelger
parents: 9271
diff changeset
185 }

http://dive4elements.wald.intevation.org