Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/model/Wst.java @ 5818:a4ff4167be1e
Request feature info on all layers and show it as html if
the server does not return valid gml.
Non queryable layers produce an error message when the request
fails. This is good enough
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 24 Apr 2013 17:33:27 +0200 |
parents | c41bb1293acb |
children |
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.io.Serializable; |
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:
467
diff
changeset
|
4 import java.math.BigDecimal; |
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:
467
diff
changeset
|
5 import java.util.List; |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 |
171
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
7 import javax.persistence.Entity; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
8 import javax.persistence.Id; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
9 import javax.persistence.Table; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
10 import javax.persistence.GeneratedValue; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
11 import javax.persistence.Column; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
12 import javax.persistence.SequenceGenerator; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
13 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
|
14 import javax.persistence.JoinColumn; |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
15 import javax.persistence.OneToOne; |
475
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
16 import javax.persistence.OneToMany; |
171
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
17 |
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:
467
diff
changeset
|
18 import org.apache.log4j.Logger; |
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:
467
diff
changeset
|
19 |
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:
467
diff
changeset
|
20 import org.hibernate.Session; |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
21 import org.hibernate.SQLQuery; |
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:
467
diff
changeset
|
22 import org.hibernate.Query; |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
23 import org.hibernate.type.StandardBasicTypes; |
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:
467
diff
changeset
|
24 |
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:
467
diff
changeset
|
25 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:
467
diff
changeset
|
26 |
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:
467
diff
changeset
|
27 |
171
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
28 @Entity |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
29 @Table(name = "wsts") |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 public class Wst |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 implements Serializable |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 { |
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:
467
diff
changeset
|
33 private static Logger logger = Logger.getLogger(Wst.class); |
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:
467
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; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
36 private River river; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
37 private String description; |
467
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
38 private Integer kind; |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 |
475
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
40 private List<WstColumn> columns; |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
41 |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
42 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
43 public static final String SQL_SELECT_MINMAX = |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
44 "select min(q) as minQ, max(q) as maxQ from wst_q_values " + |
2794
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
45 "where wst_id = :wst and not (a > :km or b < :km)"; |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
46 |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 public Wst() { |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 } |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 |
201
3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
174
diff
changeset
|
50 public Wst(River river, String description) { |
2347
0acf28a3d28a
Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2346
diff
changeset
|
51 this(river, description, 0); |
467
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
52 } |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
53 |
2347
0acf28a3d28a
Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2346
diff
changeset
|
54 public Wst(River river, String description, Integer kind) { |
201
3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
174
diff
changeset
|
55 this.river = river; |
3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
174
diff
changeset
|
56 this.description = description; |
467
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
57 this.kind = kind; |
201
3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
174
diff
changeset
|
58 } |
3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
174
diff
changeset
|
59 |
171
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
60 @Id |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
61 @SequenceGenerator( |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
62 name = "SEQUENCE_WSTS_ID_SEQ", |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
63 sequenceName = "WSTS_ID_SEQ", |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
64 allocationSize = 1) |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
65 @GeneratedValue( |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
66 strategy = GenerationType.SEQUENCE, |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
67 generator = "SEQUENCE_WSTS_ID_SEQ") |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
68 @Column(name = "id") |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
69 public Integer getId() { |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
70 return id; |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
71 } |
4a83e14f40f9
Added entity and id annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
168
diff
changeset
|
72 |
168
86a1bd9cc50e
More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
167
diff
changeset
|
73 public void setId(Integer id) { |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 this.id = id; |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 } |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 |
174
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
77 @OneToOne |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
78 @JoinColumn(name = "river_id" ) |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
79 public River getRiver() { |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
80 return river; |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
81 } |
249390dd24e7
Added foreign key constraint annotations to model classes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
172
diff
changeset
|
82 |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 public void setRiver(River river) { |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 this.river = river; |
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 |
172
605320b7df94
Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
87 @Column(name = "description") |
605320b7df94
Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
88 public String getDescription() { |
605320b7df94
Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
89 return description; |
605320b7df94
Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
90 } |
605320b7df94
Added column annotations for simple fields. TODO: foreign keys.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
91 |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 public void setDescription(String description) { |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 this.description = description; |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 } |
467
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
95 |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
96 @Column(name = "kind") |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
97 public Integer getKind() { |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
98 return kind; |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
99 } |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
100 |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
101 public void setKind(Integer kind) { |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
102 this.kind = kind; |
c8c09e31cdb8
Added new column 'kind' in discharge tables and wst to distinguish between different types.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
201
diff
changeset
|
103 } |
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:
467
diff
changeset
|
104 |
475
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
105 @OneToMany |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
106 @JoinColumn(name="wst_id") |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
107 public List<WstColumn> getColumns() { |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
108 return columns; |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
109 } |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
110 |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
111 public void setColumns(List<WstColumn> columns) { |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
112 this.columns = columns; |
9aa0eddc5221
Add forgotten one to many relation Wst -> WstColumn.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
469
diff
changeset
|
113 } |
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:
467
diff
changeset
|
114 |
2346
f834b411ca57
Added db table, model class and importer stuff for units.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
475
diff
changeset
|
115 |
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:
467
diff
changeset
|
116 /** |
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:
467
diff
changeset
|
117 * Determines the min and max Q values of this WST. The min value is placed |
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:
467
diff
changeset
|
118 * in the first field of the resulting array - the max value is placed in |
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:
467
diff
changeset
|
119 * the second field. |
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:
467
diff
changeset
|
120 * |
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:
467
diff
changeset
|
121 * @return the min and max Q values of this WST. |
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:
467
diff
changeset
|
122 */ |
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:
467
diff
changeset
|
123 public double[] determineMinMaxQ() { |
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:
467
diff
changeset
|
124 double[] ab = river.determineMinMaxDistance(); |
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:
467
diff
changeset
|
125 return determineMinMaxQ(new Range(ab[0], ab[1], river)); |
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:
467
diff
changeset
|
126 } |
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:
467
diff
changeset
|
127 |
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:
467
diff
changeset
|
128 |
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:
467
diff
changeset
|
129 /** |
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:
467
diff
changeset
|
130 * Determines the min and max Q values of this WST in the given range. The |
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:
467
diff
changeset
|
131 * min value is placed in the first field of the resulting array - the max |
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:
467
diff
changeset
|
132 * value is placed in the second field. |
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:
467
diff
changeset
|
133 * |
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:
467
diff
changeset
|
134 * @param range The range used for querying the Q values. |
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:
467
diff
changeset
|
135 * |
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:
467
diff
changeset
|
136 * @return the min and max Q values of this WST. |
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:
467
diff
changeset
|
137 */ |
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:
467
diff
changeset
|
138 public double[] determineMinMaxQ(Range range) { |
2372
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
139 if (range != null) { |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
140 return determineMinMaxQ( |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
141 range.getA().doubleValue(), |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
142 range.getB().doubleValue()); |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
143 } |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
144 |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
145 return null; |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
146 } |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
147 |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
148 |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
149 /** |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
150 * Determines the min and max Q values of this WST in the given range. The |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
151 * min value is placed in the first field of the resulting array - the max |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
152 * value is placed in the second field. |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
153 * |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
154 * @param fromKm the lower km value. |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
155 * @param toKm the upper km value. |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
156 * |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
157 * @return the min and max Q values of this WST. |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
158 */ |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
159 public double[] determineMinMaxQ(double fromKm, double toKm) { |
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:
467
diff
changeset
|
160 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:
467
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:
467
diff
changeset
|
162 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:
467
diff
changeset
|
163 "select min(q), max(q) from WstQRange where " + |
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:
467
diff
changeset
|
164 " id in " + |
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:
467
diff
changeset
|
165 " (select wstQRange.id from WstColumnQRange where " + |
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:
467
diff
changeset
|
166 " wstColumn.id in (select id from WstColumn where wst.id = :wst)) " + |
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:
467
diff
changeset
|
167 " and range.id in " + |
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:
467
diff
changeset
|
168 " (select id from Range where not (a > :end or b < :start))"); |
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:
467
diff
changeset
|
169 |
469
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
170 query.setParameter("wst", getId()); |
2372
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
171 query.setParameter("start", new BigDecimal(fromKm)); |
027736510a30
Added a new method Wst.determineMinMaxQ(double,double).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2347
diff
changeset
|
172 query.setParameter("end", new BigDecimal(toKm)); |
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:
467
diff
changeset
|
173 |
469
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
174 List<Object []> results = query.list(); |
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:
467
diff
changeset
|
175 |
469
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
176 if (results.isEmpty()) { |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
177 return null; |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
178 } |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
179 |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
180 Object [] result = results.get(0); |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
181 |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
182 return new double [] { |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
183 ((BigDecimal)result[0]).doubleValue(), |
b5ca22aae092
Fixed index problem when an empty list is returned.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
468
diff
changeset
|
184 ((BigDecimal)result[1]).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:
467
diff
changeset
|
185 } |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
186 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
187 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
188 public double[] determineMinMaxQFree(double km) { |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
189 Session session = SessionHolder.HOLDER.get(); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
190 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
191 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_MINMAX) |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
192 .addScalar("minQ", StandardBasicTypes.DOUBLE) |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
193 .addScalar("maxQ", StandardBasicTypes.DOUBLE); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
194 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
195 sqlQuery.setInteger("wst", getId()); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
196 sqlQuery.setDouble("km", km); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
197 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
198 List<Object[]> minmaxQ = sqlQuery.list(); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
199 |
2794
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
200 |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
201 if (minmaxQ.isEmpty()) { |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
202 return null; |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
203 } |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
204 |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
205 Object[] mm = minmaxQ.get(0); |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
206 |
2794
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
207 if (mm[0] == null || mm[1] == null) { |
2795
c41bb1293acb
Adapted wrong method call of Log4J logger.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2794
diff
changeset
|
208 logger.warn ("No min/max Q for km " + km + " found."); |
2794
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
209 return null; |
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
210 } |
3c26e16ae6c2
Fix or workaround flys/issue632, avoid NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2374
diff
changeset
|
211 |
2374
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
212 return new double[] { (Double) mm[0], (Double) mm[1] }; |
ab1e642e7c85
Added a new method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2372
diff
changeset
|
213 } |
167
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
214 } |
15d515fe15f5
Added POJOs to be mapped to schema.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
215 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |