Mercurial > dive4elements > river
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 /** |