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 :

http://dive4elements.wald.intevation.org