annotate backend/src/main/java/org/dive4elements/river/model/River.java @ 8721:1083cb887ffb

(issue1754) Do not filter BedHeightSoundings to range. This is more symetric to WINFO Raw data and fixes the problematic master artifact information loss from issue1754 as the information from the master (range) is no longer required.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 27 Apr 2015 17:35:28 +0200
parents cfafe5764509
children 47199406994a
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;
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
29 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
30 import javax.persistence.Table;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
31
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
32 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
33 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
34
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
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
36 @Entity
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
37 @Table(name = "rivers")
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 public class River
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 implements Serializable
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 {
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
41 public static final MathContext PRECISION = new MathContext(6);
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
42
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
43 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
44
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
45 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
46 @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
47 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
48 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
49 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
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 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
52 }
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
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
55 private Integer id;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56
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
57 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
58
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
59 private String name;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60
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
61 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
62
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
63 private String modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
64
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
65 private List<Gauge> gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
66
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
67 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
68
8683
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
69 private SeddbName seddbName;
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
70
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
71 @Id
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
72 @SequenceGenerator(
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 169
diff changeset
73 name = "SEQUENCE_RIVERS_ID_SEQ",
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
74 sequenceName = "RIVERS_ID_SEQ",
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
75 allocationSize = 1)
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
76 @GeneratedValue(
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
77 strategy = GenerationType.SEQUENCE,
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 169
diff changeset
78 generator = "SEQUENCE_RIVERS_ID_SEQ")
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
79 @Column(name = "id")
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
80 public Integer getId() {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
81 return id;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
82 }
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 public void setId(Integer id) {
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 this.id = id;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87
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
88 @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
89 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
90 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
91 }
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 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
94 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
95 }
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
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
97 @Column(name = "name")
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
98 public String getName() {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
99 return name;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 }
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 public void setName(String name) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 this.name = name;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105
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
106 @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
107 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
108 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
109 }
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 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
112 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
113 }
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
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
115 @Column(name = "model_uuid")
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
116 public String getModelUuid() {
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
117 return this.modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
118 }
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 public void setModelUuid(String modelUuid) {
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
121 this.modelUuid = modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
122 }
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
123
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 public River() {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 }
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
126
7750
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
127 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
128 this.name = name;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
129 this.modelUuid = modelUuid;
6ff574778491 Added model_uuid column to river model.
Raimund Renkert <rrenkert@intevation.de>
parents: 6229
diff changeset
130 this.wstUnit = wstUnit;
169
7929f4144d2f Bound Apache Commons DBCP with Hibernate.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
131 }
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
132
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
133 @OneToMany
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
134 @JoinColumn(name="river_id")
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
135 public List<Gauge> getGauges() {
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
136 return gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
137 }
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 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
140 this.gauges = gauges;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
141 }
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
142
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
143 @OneToOne
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
144 @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
145 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
146 return wstUnit;
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
147 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
148
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
149 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
150 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
151 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
152
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
153
8683
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
154 /**
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
155 * Get alternative seddb name.
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
156 *
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
157 * This is the name should be used in seddb queries
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
158 * and might differ from "our" backend db name.
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
159 *
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
160 * @return The name River in the seddb.
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
161 */
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
162 public String nameForSeddb() {
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
163 SeddbName alt = getSeddbName();
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
164 if (alt == null) {
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
165 return getName();
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
166 }
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
167 return alt.getName();
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
168 }
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
169
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
170
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
171 @OneToOne
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
172 @JoinColumn(name = "seddb_name_id" )
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
173 public SeddbName getSeddbName() {
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
174 return seddbName;
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
175 }
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
176
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
177 public void setSeddbName(SeddbName name) {
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
178 this.seddbName = name;
cfafe5764509 (issue 1796) Scheme change! Add model for seddb_name lookup table.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8424
diff changeset
179 }
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2345
diff changeset
180
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
181 @Override
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
182 public String toString() {
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
183 return name != null ? name : "";
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
184 }
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
185
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
186
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
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 * 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
189 * <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
190 *
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
191 * @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
192 * @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
193 *
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 * @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
195 */
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
196 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
197 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
198
756
ca13926b8871 River: Make search for gauges independent of from/to order.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 505
diff changeset
199 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
200
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
201 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
202 "from Gauge where river=:river " +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
203 "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
204 "((:b < least(range.a, range.b)) or" +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
205 " (: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
206 "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
207 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
208 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
209 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
210
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
211 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
212 }
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
213
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
214 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
215 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
216 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
217 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
218 }
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
219
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 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
221
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 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
223
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 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
225
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 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
227 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
228 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
229 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
230
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
231 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
232
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
233 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
234 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
235
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
236 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
237
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
238 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
239 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
240 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
241 }
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
242 }
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
243
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
244 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
245 }
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
246
767
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
247 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
248 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
249 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
250 "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
251 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
252 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
253 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
254 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
255 }
5572d051347e River: Added method to find gauge by its name.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 764
diff changeset
256
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
257 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
258 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
259 Query query = session.createQuery(
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
260 "from Gauge g where river=:river " +
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5880
diff changeset
261 "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
262 "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
263 "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
264 query.setParameter("river", this);
768
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 767
diff changeset
265 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
266 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
267 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
268 }
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
269
757
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
270 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
271
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
272 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
273
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
274 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
275
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
276 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
277 "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
278 "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
279 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
280 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
281 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
282
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
283 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
284 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
285 }
c19d4c643526 River: add method to find gauge by its station position.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 756
diff changeset
286
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
287 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
288 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
289
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 Query query = session.createQuery(
3795
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
291 "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
292 "from Wst as w " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
293 "join w.columns as wc " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
294 "join wc.columnQRanges as wcqr " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
295 "join wcqr.wstQRange as wqr " +
f210432f4383 Fix hibernate query
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3794
diff changeset
296 "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
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 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
299
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
300 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
301
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
302 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
303
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
304 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
305 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
306 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
307 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
308 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
309 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
310 }
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
311
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
312 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
313 }
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
314
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
315
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
316 /**
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
317 * 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
318 * <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
319 *
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
320 * @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
321 * @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
322 *
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
323 * @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
324 * 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
325 */
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
326 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
327 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
328
6106
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
329 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
330 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
331 Gauge g = gauges.get(i);
6229
3fea9701d58d Fix gauge determination.
Andre Heinecke <aheinecke@intevation.de>
parents: 6106
diff changeset
332 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
333 continue;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
334 return g;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
335 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
336 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
337
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
338 for (Gauge g: gauges) {
6229
3fea9701d58d Fix gauge determination.
Andre Heinecke <aheinecke@intevation.de>
parents: 6106
diff changeset
339 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
340 continue;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
341 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
342 return g;
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
343 }
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
344
776229dd5bf7 determineGauge tries now to find the correct Gauge by handling overlapping borders
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
345 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
346 }
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
347
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
348 /**
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
349 * 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
350 * 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
351 * 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
352 *
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 * @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
354 */
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
355 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
356 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
357
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
358 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
359 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
360 }
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
361
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
362 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
363
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
364 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
365 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
366
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
367 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
368 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
369 }
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
370
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
371 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
372 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
373 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
374 }
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
375 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
376 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
377 }
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
378
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 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
380 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
381 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
382 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
383 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
384 }
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
385 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
386 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
387 }
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
388 }
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
389 }
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
390
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
391 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
392 }
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
393
2384
385170ff7b34 River: (fix) Renamed function which is not a getter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2383
diff changeset
394 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
395 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
396 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
397
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
398 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
399 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
400 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
401 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
402 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
403 }
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
404 }
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
405
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
406 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
407 }
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
408
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
409 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
410 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org