Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/model/Gauge.java @ 468:8d76556c9616
Added methods to retrieve the min and max W and Q values of a Wst and Gauge.
flys-backend/trunk@1705 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 15 Apr 2011 13:45:06 +0000 |
parents | bfee0e05b4e7 |
children | 46bb2b9e0bdc |
comparison
equal
deleted
inserted
replaced
467:c8c09e31cdb8 | 468:8d76556c9616 |
---|---|
14 import javax.persistence.SequenceGenerator; | 14 import javax.persistence.SequenceGenerator; |
15 import javax.persistence.GenerationType; | 15 import javax.persistence.GenerationType; |
16 import javax.persistence.JoinColumn; | 16 import javax.persistence.JoinColumn; |
17 import javax.persistence.OneToOne; | 17 import javax.persistence.OneToOne; |
18 import javax.persistence.OneToMany; | 18 import javax.persistence.OneToMany; |
19 | |
20 import org.hibernate.Session; | |
21 import org.hibernate.Query; | |
22 | |
23 import de.intevation.flys.backend.SessionHolder; | |
24 | |
19 | 25 |
20 @Entity | 26 @Entity |
21 @Table(name = "gauges") | 27 @Table(name = "gauges") |
22 public class Gauge | 28 public class Gauge |
23 implements Serializable | 29 implements Serializable |
131 } | 137 } |
132 | 138 |
133 public void setDischargeTables(List<DischargeTable> dischargeTables) { | 139 public void setDischargeTables(List<DischargeTable> dischargeTables) { |
134 this.dischargeTables = dischargeTables; | 140 this.dischargeTables = dischargeTables; |
135 } | 141 } |
142 | |
143 | |
144 /** | |
145 * Returns min and max W values of this gauge. | |
146 * | |
147 * @return the min and max W value of this gauge [min,max]. | |
148 */ | |
149 public double[] determineMinMaxW() { | |
150 Session session = SessionHolder.HOLDER.get(); | |
151 | |
152 List<DischargeTable> tables = getDischargeTables(); | |
153 DischargeTable dischargeTable = null; | |
154 | |
155 for (DischargeTable tmp: tables) { | |
156 if (tmp.getKind() == 0) { | |
157 dischargeTable = tmp; | |
158 break; | |
159 } | |
160 } | |
161 | |
162 if (dischargeTable == null) { | |
163 return null; | |
164 } | |
165 | |
166 Query query = session.createQuery( | |
167 "select min(w) as min, max(w) as max from DischargeTableValue " + | |
168 "where table_id =:table"); | |
169 query.setParameter("table", dischargeTable.getId()); | |
170 | |
171 List results = query.list(); | |
172 Object[] result = (Object[]) results.get(0); | |
173 | |
174 return result != null | |
175 ? new double[] { | |
176 ((BigDecimal) result[0]).doubleValue(), | |
177 ((BigDecimal) result[1]).doubleValue() } | |
178 : null; | |
179 } | |
136 } | 180 } |
137 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 181 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |