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 :

http://dive4elements.wald.intevation.org