comparison flys-backend/src/main/java/de/intevation/flys/model/River.java @ 488:b316d2106598

River got a new method that returns all gauges intersected by a given start and end point. flys-backend/trunk@1829 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 05 May 2011 06:04:57 +0000
parents 1e196c75563b
children ce9c6f05f464
comparison
equal deleted inserted replaced
487:cf513cbe88c3 488:b316d2106598
80 return name != null ? name : ""; 80 return name != null ? name : "";
81 } 81 }
82 82
83 83
84 /** 84 /**
85 * This method returns the gauges that intersect with <i>a</i> and
86 * <i>b</i>,
87 *
88 * @param a A start point.
89 * @param b An end point.
90 *
91 * @return the intersecting gauges.
92 */
93 public List<Gauge> determineGauges(double a, double b) {
94 Session session = SessionHolder.HOLDER.get();
95
96 Query query = session.createQuery(
97 "from Gauge where river=:river " +
98 "and not (range.a > :b or range.b < :a) order by a");
99 query.setParameter("river", this);
100 query.setParameter("a", new BigDecimal(a));
101 query.setParameter("b", new BigDecimal(b));
102
103 return query.list();
104 }
105
106
107 /**
85 * This method returns the first gauge that is intersected by <i>a</i> and 108 * This method returns the first gauge that is intersected by <i>a</i> and
86 * <i>b</i>, 109 * <i>b</i>,
87 * 110 *
88 * @param a A start point. 111 * @param a A start point.
89 * @param b An end point. 112 * @param b An end point.
90 * 113 *
91 * @return the first intersecting gauge. 114 * @return the first intersecting gauge.
92 */ 115 */
93 public Gauge determineGauge(double a, double b) { 116 public Gauge determineGauge(double a, double b) {
94 Session session = SessionHolder.HOLDER.get(); 117 List<Gauge> gauges = determineGauges(a, b);
95
96 Query query = session.createQuery(
97 "from Gauge where river=:river " +
98 "and not (range.a > :b or range.b < :a) order by a");
99 query.setParameter("river", this);
100 query.setParameter("a", new BigDecimal(a));
101 query.setParameter("b", new BigDecimal(b));
102
103 List<Gauge> gauges = query.list();
104 118
105 return gauges != null && gauges.size() > 0 ? gauges.get(0) : null; 119 return gauges != null && gauges.size() > 0 ? gauges.get(0) : null;
106 } 120 }
107 121
108 /** 122 /**

http://dive4elements.wald.intevation.org