diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java @ 3143:29022c93027d

FixA: Create a cached GaugeFinderFactory to access the gauge along a river flys-artifacts/trunk@4751 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 21 Jun 2012 16:46:05 +0000
parents 9aed2e4de3ca
children 086326be721c
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java	Thu Jun 21 15:50:58 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java	Thu Jun 21 16:46:05 2012 +0000
@@ -37,17 +37,6 @@
         "WHERE" +
         "    name = :name";
 
-    public static final String SQL_GAUGES =
-        "SELECT" +
-        "    g.id AS gauge_id," +
-        "    r.a  AS a," +
-        "    r.b  AS b " +
-        "FROM gauges g" +
-        "    JOIN ranges r ON g.range_id = r.id " +
-        "WHERE" +
-        "    g.river_id = :river_id " +
-        "ORDER BY r.a";
-
     public static final String SQL_FIXINGS =
         "SELECT" +
         "    id AS wst_id," +
@@ -382,35 +371,6 @@
         return true;
     }
 
-    protected GaugeFinder loadGauges(Session session) {
-        SQLQuery query = session.createSQLQuery(SQL_GAUGES)
-            .addScalar("gauge_id", StandardBasicTypes.INTEGER)
-            .addScalar("a",        StandardBasicTypes.DOUBLE)
-            .addScalar("b",        StandardBasicTypes.DOUBLE);
-
-        query.setInteger("river_id", riverId);
-
-        List<Object []> list = query.list();
-
-        if (list.isEmpty()) {
-            log.warn("River " + riverId + " has no gauges.");
-            return null;
-        }
-
-        List<GaugeRange> gauges = new ArrayList<GaugeRange>();
-
-        for (Object [] row: list) {
-            int    gaugeId = (Integer)row[0];
-            double start   = (Double) row[1];
-            double end     = (Double) row[2];
-            GaugeRange gauge = new GaugeRange(start, end, gaugeId);
-            gauges.add(gauge);
-        }
-
-        return new GaugeFinder(gauges, isKmUp);
-    }
-
-
     protected void loadFixings(Session session) {
         SQLQuery query = session.createSQLQuery(SQL_FIXINGS)
             .addScalar("wst_id",      StandardBasicTypes.INTEGER)
@@ -480,10 +440,11 @@
             return false;
         }
 
-        GaugeFinder gaugeFinder = loadGauges(session);
+        GaugeFinderFactory gff = GaugeFinderFactory.getInstance();
 
-        if (gaugeFinder == null
-        || !gaugeFinder.loadDischargeSectors(session, riverId)) {
+        GaugeFinder gaugeFinder = gff.getGaugeFinder(riverId, isKmUp);
+
+        if (gaugeFinder == null) {
             return false;
         }
 

http://dive4elements.wald.intevation.org