annotate backend/src/main/java/org/dive4elements/river/model/Gauge.java @ 8813:8abe94270f32

Do not filter cross section points for display. Filtering coordinates outside an extent probably aimed at omitting outliers from the diagram. This is obsolete and had the side effect of filtering the important point at x = 0.
author Tom Gottfried <tom@intevation.de>
date Fri, 28 Apr 2017 19:03:56 +0200
parents 0c22ef71d154
children 5e38e2924c07
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: 5970
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: 5970
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
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import java.math.BigDecimal;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import java.io.Serializable;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
203
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
15 import java.util.List;
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
16
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
17 import javax.persistence.Entity;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
18 import javax.persistence.Id;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
19 import javax.persistence.Table;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
20 import javax.persistence.GeneratedValue;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
21 import javax.persistence.Column;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
22 import javax.persistence.SequenceGenerator;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
23 import javax.persistence.GenerationType;
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
24 import javax.persistence.JoinColumn;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
25 import javax.persistence.OneToOne;
203
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
26 import javax.persistence.OneToMany;
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
27
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
28 import org.hibernate.Session;
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
29 import org.hibernate.Query;
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
30
5969
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
31 import org.apache.log4j.Logger;
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
32
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
33 import org.dive4elements.river.backend.SessionHolder;
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
34
5374
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4174
diff changeset
35 /** Database-mapped Gauge with all info about it. */
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
36 @Entity
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
37 @Table(name = "gauges")
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 public class Gauge
4174
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
39 implements Serializable, Comparable<Gauge>
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 {
5969
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
41 private static final Logger log = Logger.getLogger(Gauge.class);
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
42
2385
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
43 public static final int MASTER_DISCHARGE_TABLE = 0;
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
44
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
45 private Integer id;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 private String name;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 private River river;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 private BigDecimal station;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 private BigDecimal aeo;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 private BigDecimal datum;
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
51 private Long officialNumber;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 private Range range;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53
203
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
54 private List<DischargeTable> dischargeTables;
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
55
1233
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
56 /** MainValues at this Gauge. */
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
57 protected List<MainValue> mainValues;
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
58
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 public Gauge() {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
62 public Gauge(
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
63 String name,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
64 River river,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
65 BigDecimal station,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
66 BigDecimal aeo,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
67 BigDecimal datum,
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
68 Long officialNumber,
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
69 Range range
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
70 ) {
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
71 this.name = name;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
72 this.river = river;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
73 this.station = station;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
74 this.aeo = aeo;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
75 this.datum = datum;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
76 this.officialNumber = officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
77 this.range = range;
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
78 }
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
79
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
80 @Id
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
81 @SequenceGenerator(
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
82 name = "SEQUENCE_GAUGES_ID_SEQ",
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
83 sequenceName = "GAUGES_ID_SEQ",
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
84 allocationSize = 1)
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
85 @GeneratedValue(
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
86 strategy = GenerationType.SEQUENCE,
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
87 generator = "SEQUENCE_GAUGES_ID_SEQ")
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
88 @Column(name = "id")
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
89 public Integer getId() {
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
90 return id;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
91 }
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
92
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
93 public void setId(Integer id) {
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 this.id = id;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96
193
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
97 @OneToOne
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
98 @JoinColumn(name = "river_id" )
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
99 public River getRiver() {
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
100 return river;
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
101 }
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
102
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
103 public void setRiver(River river) {
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
104 this.river = river;
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
105 }
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
106
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
107 @Column(name = "name")
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
108 public String getName() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
109 return name;
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
110 }
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
111
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 public void setName(String name) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 this.name = name;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
116 @Column(name = "station") // FIXME: type mapping needed
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
117 public BigDecimal getStation() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
118 return station;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 public void setStation(BigDecimal station) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 this.station = station;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
125 @Column(name = "aeo") // FIXME: type mapping needed
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
126 public BigDecimal getAeo() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
127 return aeo;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 public void setAeo(BigDecimal aeo) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 this.aeo = aeo;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
134 @Column(name = "datum") // FIXME: type mapping needed
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
135 public BigDecimal getDatum() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
136 return datum;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139 public void setDatum(BigDecimal datum) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 this.datum = datum;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
143 @Column(name = "official_number")
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
144 public Long getOfficialNumber() {
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
145 return officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
146 }
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
147
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
148 public void setOfficialNumber(Long officialNumber) {
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
149 this.officialNumber = officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
150 }
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
151
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
152 @OneToOne
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
153 @JoinColumn(name = "range_id" )
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
154 public Range getRange() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
155 return range;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158 public void setRange(Range range) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 this.range = range;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 }
203
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
161
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
162 @OneToMany
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
163 @JoinColumn(name = "gauge_id")
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
164 public List<DischargeTable> getDischargeTables() {
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
165 return dischargeTables;
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
166 }
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
167
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
168 public void setDischargeTables(List<DischargeTable> dischargeTables) {
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
169 this.dischargeTables = dischargeTables;
bfee0e05b4e7 Added an one to many relation to the discharge tables of a gauge.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 193
diff changeset
170 }
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
171
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
172
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
173 /**
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
174 * Returns min and max W values of this gauge.
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
175 *
1233
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
176 * @return the min and max W value of this gauge [min,max].
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
177 */
6327
447ed3dee890 Backend: removed scale factor from min/max value determination of gauge Ws.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5992
diff changeset
178 public double[] determineMinMaxW() {
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
179 Session session = SessionHolder.HOLDER.get();
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
180
8482
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
181 DischargeTable dischargeTable = fetchMasterDischargeTable();
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
182
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
183 if (dischargeTable == null) {
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
184 return null;
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
185 }
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
186
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
187 Query query = session.createQuery(
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
188 "select min(w) as min, max(w) as max from DischargeTableValue " +
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
189 "where table_id =:table");
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
190 query.setParameter("table", dischargeTable.getId());
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
191
5969
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
192 List<?> results = query.list();
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
193 if (results.isEmpty()) {
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
194 log.error("No values in discharge table found.");
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
195 return null;
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
196 }
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
197
5969
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
198 Object[] result = (Object[])results.get(0);
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
199
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
200 BigDecimal a = (BigDecimal)result[0];
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
201 BigDecimal b = (BigDecimal)result[1];
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
202
abe5fe3d2d17 Fixed NPE problem in fetching extram from discharge curves.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
203 return a != null && b != null
6327
447ed3dee890 Backend: removed scale factor from min/max value determination of gauge Ws.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5992
diff changeset
204 ? new double [] { a.doubleValue(), b.doubleValue() }
468
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
205 : null;
8d76556c9616 Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
206 }
1233
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
207
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
208 @OneToMany
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
209 @JoinColumn(name = "gauge_id")
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
210 public List<MainValue> getMainValues() {
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
211 return mainValues;
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
212 }
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
213
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
214 public void setMainValues(List<MainValue> mainValues) {
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
215 this.mainValues = mainValues;
2381
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
216 }
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
217
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
218 public static Gauge getGaugeByOfficialNumber(long number) {
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
219 Session session = SessionHolder.HOLDER.get();
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
220
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
221 Query query = session.createQuery(
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
222 "from Gauge where officialNumber=:number");
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
223
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
224 query.setParameter("number", number);
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
225
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
226 List<Gauge> results = query.list();
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
227
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
228 return results.isEmpty() ? null : results.get(0);
aa777d1aba38 Added a function Gauge.getGaugeByOfficialNumber() that returns a Gauge based on its official number.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2371
diff changeset
229 }
2385
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
230
6838
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
231 public static Gauge getGaugeByOfficialNumber(long number, String river_name) {
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
232 Session session = SessionHolder.HOLDER.get();
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
233
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
234 Query query = session.createQuery(
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
235 "from Gauge as gau " +
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
236 "where gau.officialNumber=:number and gau.river.name=:river_name");
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
237
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
238 query.setParameter("number", number);
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
239 query.setParameter("river_name", river_name);
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
240
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
241 List<Gauge> results = query.list();
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
242
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
243 return results.isEmpty() ? null : results.get(0);
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
244 }
a895eb07a7dc (issue1353) Add method to model to gauge by number and river name
Andre Heinecke <aheinecke@intevation.de>
parents: 6327
diff changeset
245
2385
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
246
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
247 public DischargeTable fetchMasterDischargeTable() {
8482
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
248 Session session = SessionHolder.HOLDER.get();
2385
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
249
8482
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
250 Query query = session.createQuery(
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
251 "from DischargeTable " +
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
252 "where kind = 0 " +
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
253 "and gauge = :gauge");
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
254
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
255 query.setParameter("gauge", this);
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
256
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
257 List<Object> results = query.list();
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
258
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
259 return results.isEmpty()
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
260 ? null
0c22ef71d154 Use explicit query to avoid hibernate connection leak.
Tom Gottfried <tom@intevation.de>
parents: 6838
diff changeset
261 : (DischargeTable)results.get(0);
2385
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
262 }
3686
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
263
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
264 /**
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
265 * Returns an array of [days, qs] necessary to create duration curves.
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
266 *
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
267 * @return a 2dim array of [days, qs] where days is an int[] and qs is
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
268 * an double[].
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
269 */
3688
8d38ee2de514 Rename method to satisfy hibernate
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3686
diff changeset
270 public Object[] fetchDurationCurveData() {
3686
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
271 Session session = SessionHolder.HOLDER.get();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
272
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
273 Query query = session.createQuery(
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
274 "select cast(nmv.name as integer) as days, mv.value as q " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
275 "from MainValue as mv " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
276 "join mv.mainValue as nmv " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
277 "join nmv.type mvt " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
278 "where mvt.name = 'D' and mv.gauge.id = :gauge_id " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
279 "order by days");
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
280
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
281 query.setParameter("gauge_id", getId());
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
282
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
283 List<Object> results = query.list();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
284 int[] days = new int[results.size()];
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
285 double[] qs = new double[results.size()];
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
286
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
287 int idx = 0;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
288
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
289 for (Object obj: results) {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
290 Object[] arr = (Object[]) obj;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
291
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
292 try {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
293 int day = ((Integer) arr[0]).intValue();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
294 double q = ((BigDecimal) arr[1]).doubleValue();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
295
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
296 days[idx] = day;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
297 qs[idx++] = q;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
298 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
299 catch (NumberFormatException nfe) {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
300 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
301 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
302
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
303 return new Object[] { days, qs };
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
304 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
305
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
306 /**
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
307 * Calculates the maximum and minimum W and Q values
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
308 *
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
309 * @return the MaxMinWQ object representing the calculated values
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
310 */
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
311 public MinMaxWQ fetchMaxMinWQ() {
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
312 Session session = SessionHolder.HOLDER.get();
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
313
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
314 Query query = session.createQuery(
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
315 "select max(mv.value) as max, min(mv.value) as min " +
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
316 "from MainValue as mv " +
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
317 "join mv.mainValue as nmv " +
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
318 "join nmv.type mvt " +
3790
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
319 "where mvt.name in ('W', 'Q') " +
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
320 "and mv.gauge.id = :gauge_id " +
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
321 "group by mvt.name order by mvt.name"
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
322 );
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
323
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
324 query.setParameter("gauge_id", getId());
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
325
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
326 List<Object> results = query.list();
3790
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
327 if (results.isEmpty()) {
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
328 // No values found
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
329 return new MinMaxWQ();
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
330 }
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
331
3790
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
332 Object[] arr = (Object[]) results.get(0);
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
333 BigDecimal maxw = (BigDecimal)arr[0];
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
334 BigDecimal minw = (BigDecimal)arr[1];
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
335 BigDecimal maxq = null;
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
336 BigDecimal minq = null;
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
337
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
338
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
339 if (results.size() > 1) {
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
340 arr = (Object[]) results.get(1);
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
341 maxq = (BigDecimal)arr[0];
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
342 minq = (BigDecimal)arr[1];
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
343 }
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
344
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
345 return new MinMaxWQ(minw, maxw, minq, maxq);
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
346 }
4174
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
347
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
348 @Override
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
349 public int compareTo(Gauge o) {
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
350 return getName().compareTo(o.getName());
eaf83d4ae6b1 Sorted gauges for reference gauge selection in historical discharge calculation based on their name.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3947
diff changeset
351 }
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
352 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
353 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org