annotate flys-backend/src/main/java/de/intevation/flys/model/Gauge.java @ 4837:9e25c7523485

Fixed calculation of effective width in MINFO SQ relation. * Get all (including empty datasets) from db. * Filter empty datasets when processing data of the same date. * Added debug outputs.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 23 Jan 2013 11:14:41 +0100
parents eaf83d4ae6b1
children 0ff0ed6bd340
rev   line source
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.model;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import java.math.BigDecimal;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 import java.io.Serializable;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6
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
7 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
8
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
9 import javax.persistence.Entity;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
10 import javax.persistence.Id;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
11 import javax.persistence.Table;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
12 import javax.persistence.GeneratedValue;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
13 import javax.persistence.Column;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
14 import javax.persistence.SequenceGenerator;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
15 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
16 import javax.persistence.JoinColumn;
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
17 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
18 import javax.persistence.OneToMany;
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
19
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
20 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
21 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
22
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
23 import de.intevation.flys.backend.SessionHolder;
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
24
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
25 @Entity
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
26 @Table(name = "gauges")
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 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
28 implements Serializable, Comparable<Gauge>
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 {
480
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
30 public static final int DEFAULT_SCALE = 100;
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
31
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
32 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
33
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
34
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
35 private Integer id;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 private String name;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 private River river;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 private BigDecimal station;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 private BigDecimal aeo;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 private BigDecimal datum;
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
41 private Long officialNumber;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 private Range range;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
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
44 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
45
1233
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
46 /** 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
47 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
48
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 public Gauge() {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
52 public Gauge(
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
53 String name,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
54 River river,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
55 BigDecimal station,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
56 BigDecimal aeo,
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
57 BigDecimal datum,
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
58 Long officialNumber,
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
59 Range range
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
60 ) {
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
61 this.name = name;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
62 this.river = river;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
63 this.station = station;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
64 this.aeo = aeo;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
65 this.datum = datum;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
66 this.officialNumber = officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
67 this.range = range;
192
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
68 }
f1fce41347ea Added missing ImportGauge.getPeer() method
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 174
diff changeset
69
171
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
70 @Id
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
71 @SequenceGenerator(
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
72 name = "SEQUENCE_GAUGES_ID_SEQ",
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
73 sequenceName = "GAUGES_ID_SEQ",
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
74 allocationSize = 1)
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
75 @GeneratedValue(
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
76 strategy = GenerationType.SEQUENCE,
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
77 generator = "SEQUENCE_GAUGES_ID_SEQ")
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
78 @Column(name = "id")
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
79 public Integer getId() {
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
80 return id;
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
81 }
4a83e14f40f9 Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
82
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 167
diff changeset
83 public void setId(Integer id) {
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 this.id = id;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86
193
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
87 @OneToOne
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
88 @JoinColumn(name = "river_id" )
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
89 public River getRiver() {
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
90 return river;
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
91 }
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
92
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
93 public void setRiver(River river) {
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
94 this.river = river;
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
95 }
31c48d54f09d Add forgotten column river_id in Gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 192
diff changeset
96
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
97 @Column(name = "name")
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
98 public String getName() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
99 return name;
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
100 }
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
101
167
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
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
106 @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
107 public BigDecimal getStation() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
108 return station;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 public void setStation(BigDecimal station) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 this.station = station;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
115 @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
116 public BigDecimal getAeo() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
117 return aeo;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 }
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 public void setAeo(BigDecimal aeo) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 this.aeo = aeo;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123
172
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
124 @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
125 public BigDecimal getDatum() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
126 return datum;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 }
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 public void setDatum(BigDecimal datum) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 this.datum = datum;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132
2371
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
133 @Column(name = "official_number")
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
134 public Long getOfficialNumber() {
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
135 return officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
136 }
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
137
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
138 public void setOfficialNumber(Long officialNumber) {
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
139 this.officialNumber = officialNumber;
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
140 }
fe89d6cf55fb Added support for official gauge numbers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1233
diff changeset
141
174
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
142 @OneToOne
249390dd24e7 Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 172
diff changeset
143 @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
144 public Range getRange() {
605320b7df94 Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
145 return range;
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 public void setRange(Range range) {
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 this.range = range;
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 }
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
151
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
152 @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
153 @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
154 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
155 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
156 }
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
157
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
158 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
159 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
160 }
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
161
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
162
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
163 /**
480
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
164 * Returns min and max W values of this gauge based with a DEFAULT_SCALE.
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
165 *
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
166 * @return min and max W value of this gauge [min,max].
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
167 */
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
168 public double[] determineMinMaxW() {
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
169 return determineMinMaxW(DEFAULT_SCALE);
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
170 }
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
171
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
172
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
173 /**
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
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 */
480
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
178 public double[] determineMinMaxW(int scale) {
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
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
181 List<DischargeTable> tables = getDischargeTables();
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 DischargeTable 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
183
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 for (DischargeTable tmp: tables) {
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 if (tmp.getKind() == 0) {
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 dischargeTable = tmp;
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 break;
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 }
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 }
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
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 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
192 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
193 }
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
194
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
195 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
196 "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
197 "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
198 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
199
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
200 List results = query.list();
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
201 Object[] result = (Object[]) results.get(0);
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
202
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
203 return result != 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
204 ? new double[] {
480
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
205 ((BigDecimal) result[0]).doubleValue() * scale,
46bb2b9e0bdc Introduced a 'scale' parameter in Gauge.determineMinMaxW().
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 468
diff changeset
206 ((BigDecimal) result[1]).doubleValue() * scale}
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
207 : 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
208 }
1233
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
209
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
210 @OneToMany
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
211 @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
212 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
213 return mainValues;
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
214 }
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
215
5a3109b8475f Mapping and Accessors for MainValues of Gauge, by Sascha L. Teichmann.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 480
diff changeset
216 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
217 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
218 }
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
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 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
222 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
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 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
225 "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
226
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 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
228
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 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
230
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
231 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
232 }
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
233
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
234
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
235 public DischargeTable fetchMasterDischargeTable() {
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
236 for (DischargeTable dt: dischargeTables) {
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
237 if (dt.getKind() == MASTER_DISCHARGE_TABLE) {
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
238 return dt;
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
239 }
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
240 }
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
241
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
242 return null;
83abe19d4f40 Added a method Gauge.fetchMasterDischargeTable() to retrieve the discharge table with kind = 0.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2381
diff changeset
243 }
3686
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
244
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
245 /**
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
246 * 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
247 *
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
248 * @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
249 * an double[].
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
250 */
3688
8d38ee2de514 Rename method to satisfy hibernate
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3686
diff changeset
251 public Object[] fetchDurationCurveData() {
3686
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
252 Session session = SessionHolder.HOLDER.get();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
253
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
254 Query query = session.createQuery(
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
255 "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
256 "from MainValue as mv " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
257 "join mv.mainValue as nmv " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
258 "join nmv.type mvt " +
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
259 "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
260 "order by days");
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
261
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
262 query.setParameter("gauge_id", getId());
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 List<Object> results = query.list();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
265 int[] days = new int[results.size()];
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
266 double[] qs = new double[results.size()];
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
267
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
268 int idx = 0;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
269
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
270 for (Object obj: results) {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
271 Object[] arr = (Object[]) obj;
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 try {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
274 int day = ((Integer) arr[0]).intValue();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
275 double q = ((BigDecimal) arr[1]).doubleValue();
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
276
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
277 days[idx] = day;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
278 qs[idx++] = q;
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
279 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
280 catch (NumberFormatException nfe) {
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
281 }
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
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
284 return new Object[] { days, qs };
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
285 }
c959444ff395 Add getDurationCurveData method to Gauge class
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3343
diff changeset
286
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
287 /**
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
288 * 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
289 *
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
290 * @return the MaxMinWQ object representing the calculated values
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
291 */
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
292 public MinMaxWQ fetchMaxMinWQ() {
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
293 Session session = SessionHolder.HOLDER.get();
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
294
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
295 Query query = session.createQuery(
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
296 "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
297 "from MainValue as mv " +
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
298 "join mv.mainValue as nmv " +
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
299 "join nmv.type mvt " +
3790
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
300 "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
301 "and mv.gauge.id = :gauge_id " +
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
302 "group by mvt.name order by mvt.name"
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
303 );
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
304
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
305 query.setParameter("gauge_id", getId());
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 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
308 if (results.isEmpty()) {
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
309 // No values found
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
310 return new MinMaxWQ();
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
311 }
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
312
3790
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
313 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
314 BigDecimal maxw = (BigDecimal)arr[0];
6546c0bbc6f9 Backend: 'Pegelinfo' needs min/max Q, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3789
diff changeset
315 BigDecimal minw = (BigDecimal)arr[1];
3789
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
316 BigDecimal maxq = null;
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
317 BigDecimal minq = null;
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
318
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
319
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
320 if (results.size() > 1) {
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
321 arr = (Object[]) results.get(1);
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
322 maxq = (BigDecimal)arr[0];
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
323 minq = (BigDecimal)arr[1];
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
324 }
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 return new MinMaxWQ(minw, maxw, minq, maxq);
9f92c42b7a81 Add method fetchMinMaxWQ to Gauge
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3788
diff changeset
327 }
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
328
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
329 @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
330 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
331 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
332 }
167
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
333 }
15d515fe15f5 Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
334 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org