Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java @ 3142:9aed2e4de3ca
FixA: Moved GaugeFinder into top level class.
flys-artifacts/trunk@4750 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 21 Jun 2012 15:50:58 +0000 |
parents | 3582e87e9171 |
children | 29022c93027d |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Thu Jun 21 15:39:34 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Thu Jun 21 15:50:58 2012 +0000 @@ -48,29 +48,6 @@ " g.river_id = :river_id " + "ORDER BY r.a"; - public static final String SQL_DISCHARGE_SECTORS = - "SELECT" + - " g.id AS gauge_id," + - " nmv.name AS name," + - " CAST(mv.value AS NUMERIC(38,2)) AS value " + - "FROM gauges g" + - " JOIN main_values mv ON g.id = mv.gauge_id" + - " JOIN named_main_values nmv ON nmv.id = mv.named_value_id" + - " JOIN main_value_types mvt ON nmv.type_id = mvt.id " + - "WHERE" + - " mvt.name = 'Q' AND (" + - " nmv.name = 'MNQ' OR" + - " nmv.name LIKE 'MNQ(%' OR" + - " nmv.name = 'MQ' OR" + - " nmv.name LIKE 'MQ(%' OR" + - " nmv.name = 'MHQ' OR" + - " nmv.name LIKE 'MHQ(%' OR" + - " nmv.name = 'HQ5' OR" + - " nmv.name LIKE 'HQ5(%') AND" + - " g.river_id = :river_id " + - "ORDER BY" + - " g.id"; - public static final String SQL_FIXINGS = "SELECT" + " id AS wst_id," + @@ -112,90 +89,6 @@ " wst_column_id = :column_id"; - public static class GaugeFinder { - - protected List<GaugeRange> gauges; - protected boolean isKmUp; - - public GaugeFinder(List<GaugeRange> gauges) { - this(gauges, true); - } - - public GaugeFinder( - List<GaugeRange> gauges, - boolean isKmUp - ) { - this.gauges = gauges; - this.isKmUp = isKmUp; - } - - public boolean getIsKmUp() { - return isKmUp; - } - - public void setIsKmUp(boolean isKmUp) { - this.isKmUp = isKmUp; - } - - public GaugeRange find(Range range) { - double km = isKmUp ? range.start : range.end; - for (GaugeRange gauge: gauges) { - if (gauge.inside(km)) { - return gauge; - } - } - return null; - } - - public GaugeRange find(int gaugeId) { - for (GaugeRange gauge: gauges) { - if (gauge.gaugeId == gaugeId) { - return gauge; - } - } - return null; - } - - public boolean loadDischargeSectors(Session session, int riverId) { - - SQLQuery query = session.createSQLQuery(SQL_DISCHARGE_SECTORS) - .addScalar("gauge_id", StandardBasicTypes.INTEGER) - .addScalar("name", StandardBasicTypes.STRING) - .addScalar("value", StandardBasicTypes.DOUBLE); - - query.setInteger("river_id", riverId); - - List<Object []> list = query.list(); - - if (list.isEmpty()) { - log.warn("River " + riverId + " has no discharge sectors."); - return false; - } - - GaugeRange gauge = null; - - for (Object [] row: list) { - int gaugeId = (Integer)row[0]; - String label = (String) row[1]; - Double value = (Double) row[2]; - - if (gauge == null || gauge.gaugeId != gaugeId) { - if ((gauge = find(gaugeId)) == null) { - log.warn("Cannot find gauge for id " + gaugeId + "."); - continue; - } - } - - gauge.addMainValue(label, value); - } - - for (GaugeRange g: gauges) { - g.buildClasses(); - } - - return true; - } - } // class GaugeFinder public static class QRange extends Range {