# HG changeset patch # User Sascha L. Teichmann # Date 1308428011 0 # Node ID e09f00ecb915d1173f01b0c02f9dfaf71ef2079a # Parent 8076f6a689d00c725caed7e456e3b6d9dffafd4d river model: Added method to find gauge by a position lying in its range. flys-backend/trunk@2160 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 8076f6a689d0 -r e09f00ecb915 flys-backend/ChangeLog --- a/flys-backend/ChangeLog Wed Jun 15 09:22:00 2011 +0000 +++ b/flys-backend/ChangeLog Sat Jun 18 20:13:31 2011 +0000 @@ -1,3 +1,8 @@ +2011-06-14 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/model/River.java: + Added method to find gauge by a position lying in its range. + 2011-06-14 Sascha L. Teichmann First part of flys/issue18 diff -r 8076f6a689d0 -r e09f00ecb915 flys-backend/src/main/java/de/intevation/flys/model/River.java --- a/flys-backend/src/main/java/de/intevation/flys/model/River.java Wed Jun 15 09:22:00 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/model/River.java Sat Jun 18 20:13:31 2011 +0000 @@ -116,6 +116,17 @@ return query.list(); } + public Gauge determineGaugeByPosition(double p) { + Session session = SessionHolder.HOLDER.get(); + Query query = session.createQuery( + "from Gauge where river=:river " + + "and :p between range.a and range.b"); + query.setParameter("river", this); + query.setParameter("p", new BigDecimal(p)); + List gauges = query.list(); + return gauges.isEmpty() ? null : gauges.get(0); + } + public Gauge determineGaugeByStation(double a, double b) { if (a > b) { double t = a; a = b; b = t; }