Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/model/River.java @ 9527:7c8d62867876
Cleanup of MainWstValue code. Cache qPositions once determined.
author | gernotbelger |
---|---|
date | Tue, 02 Oct 2018 13:25:52 +0200 |
parents | 50416a0df385 |
children | d9fda7af24ca |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/model/River.java Mon Oct 01 18:08:31 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/model/River.java Tue Oct 02 13:25:52 2018 +0200 @@ -14,6 +14,7 @@ import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.NavigableMap; import java.util.TreeMap; import javax.persistence.Column; @@ -427,5 +428,27 @@ } return null; } + + public Gauge firstUpstreamGauge() { + final List<Gauge> gauges = getGauges(); + + final NavigableMap<BigDecimal, Gauge> byKm = new TreeMap<>(); + + for (final Gauge gauge : gauges) { + final Range range = gauge.getRange(); + if (range != null) { + final BigDecimal a = range.getA(); + byKm.put(a, gauge); + } + } + + if (byKm.isEmpty()) + return null; + + if (kmUp) + return byKm.lastEntry().getValue(); + + return byKm.firstEntry().getValue(); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :