diff flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java @ 5735:c75be5205a69

Backend: Parse time intervals for main values.
author Sascha L. Teichmann <teichmann@intevation.de>
date Tue, 16 Apr 2013 18:07:05 +0200
parents 67fd63e4ef66
children
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java	Tue Apr 16 17:33:55 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java	Tue Apr 16 18:07:05 2013 +0200
@@ -8,6 +8,7 @@
 import de.intevation.flys.model.Gauge;
 import de.intevation.flys.model.River;
 import de.intevation.flys.model.NamedMainValue;
+import de.intevation.flys.model.TimeInterval;
 
 import org.hibernate.Session;
 import org.hibernate.Query;
@@ -17,6 +18,7 @@
     protected ImportGauge          gauge;
     protected ImportNamedMainValue mainValue;
     protected BigDecimal           value;
+    protected ImportTimeInterval   timeInterval;
 
     protected MainValue peer;
 
@@ -26,11 +28,13 @@
     public ImportMainValue(
         ImportGauge          gauge,
         ImportNamedMainValue mainValue,
-        BigDecimal           value
+        BigDecimal           value,
+        ImportTimeInterval   timeInterval
     ) {
-        this.gauge     = gauge;
-        this.mainValue = mainValue;
-        this.value     = value;
+        this.gauge        = gauge;
+        this.mainValue    = mainValue;
+        this.value        = value;
+        this.timeInterval = timeInterval;
     }
 
     public ImportGauge getGauge() {
@@ -62,12 +66,17 @@
             Session session = ImporterSession.getInstance().getDatabaseSession();
             Query query = session.createQuery("from MainValue where "
                 + "gauge.id=:gauge_id and mainValue.id=:name_id "
+                + "and timeInterval = :time "
                 + "and value=:value");
             Gauge          g = gauge.getPeer(river);
             NamedMainValue n = mainValue.getPeer();
+            TimeInterval   t = timeInterval != null
+                ? timeInterval.getPeer()
+                : null;
             query.setParameter("gauge_id", g.getId());
             query.setParameter("name_id",  n.getId());
             query.setParameter("value",    value);
+            query.setParameter("time",     t);
             List<MainValue> values = query.list();
             if (values.isEmpty()) {
                 peer = new MainValue(g, n, value, null);

http://dive4elements.wald.intevation.org