annotate backend/src/main/java/org/dive4elements/river/model/River.java @ 8029:cdb9f6d97f6a

Added method to importer session to fetch the measurement station for given (river, km).
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 10 Jul 2014 18:02:08 +0200
parents 6ff574778491
children 17db08570637
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
9 package org.dive4elements.river.model;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
11 import org.dive4elements.river.backend.SessionHolder;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
12
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import java.io.Serializable;
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
14 import java.math.BigDecimal;
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
15 import java.math.MathContext;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
16 import java.util.Comparator;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
17 import java.util.List;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
18 import java.util.Map;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
19 import java.util.TreeMap;
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
20
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
21 import javax.persistence.Column;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
22 import javax.persistence.Entity;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
23 import javax.persistence.GeneratedValue;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
24 import javax.persistence.GenerationType;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
25 import javax.persistence.Id;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
26 import javax.persistence.JoinColumn;
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
27 import javax.persistence.OneToMany;
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
28 import javax.persistence.OneToOne;
4262
87c3a3ac6ddf Order MeasurementStations by station km
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4245
diff changeset
29 import javax.persistence.OrderBy;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
30 import javax.persistence.SequenceGenerator;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
31 import javax.persistence.Table;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
32
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
33 import org.hibernate.Query;
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
34 import org.hibernate.Session;
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
35
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
36
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
37 @Entity
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
38 @Table(name = "rivers")
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 public class River
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 implements Serializable
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 {
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
42 public static final MathContext PRECISION = new MathContext(6);
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
43
2383
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
44 public static final double EPSILON = 1e-5;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
45
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
46 public static final Comparator<Double> KM_CMP = new Comparator<Double>() {
2383
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
47 @Override
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
48 public int compare(Double a, Double b) {
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
49 double diff = a - b;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
50 if (diff < -EPSILON) return -1;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
51 if (diff > EPSILON) return +1;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
52 return 0;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
53 }
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
54 };
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
55
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
56 private Integer id;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57
3946
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
58 private Long officialNumber;
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
59
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
60 private String name;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61
505
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
62 private boolean kmUp;
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
63
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
64 private String modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
65
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
66 private List<Gauge> gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
67
4245
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
68 private List<MeasurementStation> measurementstations;
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
69
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
70 private Unit wstUnit;
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
71
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
72 @Id
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
73 @SequenceGenerator(
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 169
diff changeset
74 name = "SEQUENCE_RIVERS_ID_SEQ",
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
75 sequenceName = "RIVERS_ID_SEQ",
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
76 allocationSize = 1)
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
77 @GeneratedValue(
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
78 strategy = GenerationType.SEQUENCE,
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 169
diff changeset
79 generator = "SEQUENCE_RIVERS_ID_SEQ")
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
80 @Column(name = "id")
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
81 public Integer getId() {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
82 return id;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
83 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
84
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
85 public void setId(Integer id) {
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 this.id = id;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88
3946
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
89 @Column(name = "official_number")
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
90 public Long getOfficialNumber() {
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
91 return officialNumber;
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
92 }
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
93
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
94 public void setOfficialNumber(Long officialNumber) {
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
95 this.officialNumber = officialNumber;
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
96 }
948c7289fc42 Backend: Added 'official_number' column to rivers table to model the 'Bundeswasserstrassen Identnummer'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3945
diff changeset
97
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
98 @Column(name = "name")
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
99 public String getName() {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
100 return name;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 public void setName(String name) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 this.name = name;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106
505
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
107 @Column(name = "km_up")
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
108 public boolean getKmUp() {
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
109 return kmUp;
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
110 }
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
111
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
112 public void setKmUp(boolean kmUp) {
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
113 this.kmUp = kmUp;
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
114 }
ce9c6f05f464 Schema: Added a column which tells if a river counts its km up or downwards.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 488
diff changeset
115
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
116 @Column(name = "model_uuid")
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
117 public String getModelUuid() {
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
118 return this.modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
119 }
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
120
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
121 public void setModelUuid(String modelUuid) {
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
122 this.modelUuid = modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
123 }
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
124
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 public River() {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 }
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
127
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
128 public River(String name, Unit wstUnit, String modelUuid) {
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
129 this.name = name;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
130 this.modelUuid = modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
131 this.wstUnit = wstUnit;
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
132 }
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
133
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
134 @OneToMany
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
135 @JoinColumn(name="river_id")
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
136 public List<Gauge> getGauges() {
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
137 return gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
138 }
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
139
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
140 public void setGauges(List<Gauge> gauges) {
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
141 this.gauges = gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
142 }
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
143
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
144
4245
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
145 @OneToMany
4262
87c3a3ac6ddf Order MeasurementStations by station km
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4245
diff changeset
146 @OrderBy("station")
4245
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
147 @JoinColumn(name="river_id")
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
148 public List<MeasurementStation> getMeasurementStations() {
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
149 return measurementstations;
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
150 }
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
151
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
152 public void setMeasurementStations(List<MeasurementStation> mstations) {
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
153 this.measurementstations = mstations;
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
154 }
6302db90b63f Add MeasurementStation to the River
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3947
diff changeset
155
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
156 @OneToOne
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
157 @JoinColumn(name = "wst_unit_id" )
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
158 public Unit getWstUnit() {
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
159 return wstUnit;
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
160 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
161
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
162 public void setWstUnit(Unit wstUnit) {
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
163 this.wstUnit = wstUnit;
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
164 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
165
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
166
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
167
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4262
diff changeset
168 @Override
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
169 public String toString() {
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
170 return name != null ? name : "";
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
171 }
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
172
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
173
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
174 /**
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
175 * This method returns the gauges that intersect with <i>a</i> and
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
176 * <i>b</i>,
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
177 *
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
178 * @param a A start point.
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
179 * @param b An end point.
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
180 *
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
181 * @return the intersecting gauges.
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
182 */
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
183 public List<Gauge> determineGauges(double a, double b) {
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
184 Session session = SessionHolder.HOLDER.get();
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
185
756
ca13926b8871 River: Make search for gauges independent of from/to order.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 505
diff changeset
186 if (a > b) { double t = a; a = b; b = t; }
ca13926b8871 River: Make search for gauges independent of from/to order.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 505
diff changeset
187
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
188 Query query = session.createQuery(
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
189 "from Gauge where river=:river " +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
190 "and not " +
5880
1f52b2bff737 Another part of flys/issue1247: Now the main values are determined right if the gauge limits are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5878
diff changeset
191 "((:b < least(range.a, range.b)) or" +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
192 " (:a > greatest(range.a, range.b)))" +
5880
1f52b2bff737 Another part of flys/issue1247: Now the main values are determined right if the gauge limits are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5878
diff changeset
193 "order by a");
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
194 query.setParameter("river", this);
769
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
195 query.setParameter("a", new BigDecimal(a, PRECISION));
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
196 query.setParameter("b", new BigDecimal(b, PRECISION));
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
197
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
198 return query.list();
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
199 }
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
200
769
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
201 public Gauge maxOverlap(double a, double b) {
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
202 List<Gauge> gauges = determineGauges(a, b);
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
203 if (gauges == null) {
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
204 return null;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
205 }
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
206
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
207 if (a > b) { double t = a; a = b; b = t; }
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
208
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
209 double max = -Double.MAX_VALUE;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
210
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
211 Gauge result = null;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
212
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
213 for (Gauge gauge: gauges) {
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
214 Range r = gauge.getRange();
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
215 double c = r.getA().doubleValue();
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
216 double d = r.getB().doubleValue();
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
217
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
218 if (c > d) { double t = c; c = d; d = t; }
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
219
769
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
220 double start = c >= a ? c : a;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
221 double stop = d <= b ? d : b;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
222
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
223 double length = stop - start;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
224
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
225 if (length > max) {
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
226 max = length;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
227 result = gauge;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
228 }
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
229 }
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
230
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
231 return result;
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
232 }
321b9e480f72 Added a method to river to find the gauge with the max overlap with a given interval.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 768
diff changeset
233
767
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
234 public Gauge determineGaugeByName(String name) {
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
235 Session session = SessionHolder.HOLDER.get();
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
236 Query query = session.createQuery(
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
237 "from Gauge where river=:river and name=:name");
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
238 query.setParameter("river", this);
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
239 query.setParameter("name", name);
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
240 List<Gauge> gauges = query.list();
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
241 return gauges.isEmpty() ? null : gauges.get(0);
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
242 }
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
243
764
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
244 public Gauge determineGaugeByPosition(double p) {
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
245 Session session = SessionHolder.HOLDER.get();
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
246 Query query = session.createQuery(
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
247 "from Gauge g where river=:river " +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
248 "and :p between " +
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
249 "least(g.range.a, g.range.b) and " +
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
250 "greatest(g.range.a, g.range.b)");
764
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
251 query.setParameter("river", this);
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
252 query.setParameter("p", new BigDecimal(p, PRECISION));
764
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
253 List<Gauge> gauges = query.list();
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
254 return gauges.isEmpty() ? null : gauges.get(0);
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
255 }
e09f00ecb915 river model: Added method to find gauge by a position lying in its range.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 757
diff changeset
256
757
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
257 public Gauge determineGaugeByStation(double a, double b) {
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
258
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
259 if (a > b) { double t = a; a = b; b = t; }
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
260
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
261 Session session = SessionHolder.HOLDER.get();
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
262
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
263 Query query = session.createQuery(
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
264 "from Gauge where river.id=:river " +
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
265 "and station between :a and :b");
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
266 query.setParameter("river", getId());
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
267 query.setParameter("a", new BigDecimal(a));
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
268 query.setParameter("b", new BigDecimal(b));
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
269
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
270 List<Gauge> gauges = query.list();
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
271 return gauges.isEmpty() ? null : gauges.get(0);
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
272 }
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
273
3794
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
274 public double[] determineMinMaxQ() {
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
275 Session session = SessionHolder.HOLDER.get();
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
276
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
277 Query query = session.createQuery(
3795
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
278 "select min(wqr.q) as min, max(wqr.q) as max " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
279 "from Wst as w " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
280 "join w.columns as wc " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
281 "join wc.columnQRanges as wcqr " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
282 "join wcqr.wstQRange as wqr " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
283 "where w.kind = 0 and river_id = :river");
3794
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
284
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
285 query.setParameter("river", getId());
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
286
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
287 double minmax[] = new double[] { Double.MAX_VALUE, -Double.MAX_VALUE };
3794
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
288
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
289 List<Object> results = query.list();
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
290
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
291 if (!results.isEmpty()) {
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
292 Object[] arr = (Object[]) results.get(0);
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
293 BigDecimal minq = (BigDecimal)arr[0];
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
294 BigDecimal maxq = (BigDecimal)arr[1];
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
295 minmax[0] = minq.doubleValue();
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
296 minmax[1] = maxq.doubleValue();
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
297 }
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
298
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
299 return minmax;
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
300 }
42db09d101f3 Add new method determineMinMaxQ to the River class to fetch the mimimum and maximum q values
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 2384
diff changeset
301
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
302
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
303 /**
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
304 * This method returns the first gauge that is intersected by <i>a</i> and
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
305 * <i>b</i>, but which possibly does not ends with a or starts with b.
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
306 *
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
307 * @param a A start point.
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
308 * @param b An end point.
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
309 *
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
310 * @return the first intersecting gauge that does not border with a or b,
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
311 * the first intersecting gauge if that is impossible.
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
312 */
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
313 public Gauge determineGauge(double a, double b) {
488
b316d2106598 River got a new method that returns all gauges intersected by a given start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 472
diff changeset
314 List<Gauge> gauges = determineGauges(a, b);
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
315
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
316 if (a > b) {
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
317 for (int i = gauges.size() - 1; i >= 0; i--) {
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
318 Gauge g = gauges.get(i);
6229
3fea9701d58d Fix gauge determination.
Andre Heinecke <aheinecke@intevation.de>
parents: 6106
diff changeset
319 if (KM_CMP.compare(g.getRange().getA().doubleValue(), a) == 0)
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
320 continue;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
321 return g;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
322 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
323 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
324
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
325 for (Gauge g: gauges) {
6229
3fea9701d58d Fix gauge determination.
Andre Heinecke <aheinecke@intevation.de>
parents: 6106
diff changeset
326 if (KM_CMP.compare(g.getRange().getB().doubleValue(), a) == 0) {
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
327 continue;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
328 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
329 return g;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
330 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
331
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
332 return null;
472
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
333 }
1e196c75563b Added a new method to determine the selected gauge of a river based on a start and end point.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 465
diff changeset
334
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
335 /**
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
336 * Returns the min and max distance of this river. The first position in the
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
337 * resulting array contains the min distance, the second position the max
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
338 * distance.
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
339 *
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
340 * @return the min and max distance of this river.
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
341 */
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
342 public double[] determineMinMaxDistance() {
2373
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
343 List<Gauge> gauges = getGauges();
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
344
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
345 if (gauges == null || gauges.isEmpty()) {
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
346 return null;
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
347 }
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
348
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
349 double minmax[] = new double[] { Double.MAX_VALUE, -Double.MAX_VALUE };
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
350
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
351 for (Gauge g: gauges) {
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
352 Range r = g.getRange();
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
353
2373
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
354 if (r == null) {
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
355 continue;
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
356 }
056b3a5aa181 Removed "NOT NULL" constraint from gauges.range_id because there are gauges which dont have a Gueltigkeitsbereich.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2347
diff changeset
357
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
358 double a = r.getA().doubleValue();
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
359 if (a < minmax[0]) {
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
360 minmax[0] = a;
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
361 }
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
362 if (a > minmax[1]) {
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
363 minmax[1] = a;
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
364 }
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
365
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
366 BigDecimal bigB = r.getB();
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
367 if (bigB != null) {
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
368 double b = bigB.doubleValue();
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
369 if (b < minmax[0]) {
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
370 minmax[0] = b;
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
371 }
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
372 if (b > minmax[1]) {
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
373 minmax[1] = b;
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
374 }
465
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
375 }
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
376 }
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
377
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
378 return minmax;
c2c3ad4fda58 Added a method to River that returns the min and max distance of the river.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 188
diff changeset
379 }
2383
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
380
2384
385170ff7b34 River: (fix) Renamed function which is not a getter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2383
diff changeset
381 public Map<Double, Double> queryGaugeDatumsKMs() {
2383
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
382 List<Gauge> gauges = getGauges();
5878
a7b56219b362 Partial fix for flys/issue1247: When trying to find gauges take care of the fact that start and end position are in abitrary order.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
383 Map<Double, Double> result = new TreeMap<Double, Double>(KM_CMP);
2383
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
384
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
385 for (Gauge gauge: gauges) {
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
386 BigDecimal km = gauge.getStation();
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
387 BigDecimal datum = gauge.getDatum();
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
388 if (km != null && datum != null) {
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
389 result.put(km.doubleValue(), datum.doubleValue());
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
390 }
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
391 }
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
392
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
393 return result;
6605dcd6745f Added a method to build a map from gauge stations to the datums of the gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2373
diff changeset
394 }
3944
5fea100c5334 Add a new method to River and Gauge classes to return a http url for additional
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3795
diff changeset
395
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
396 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
397 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org