diff flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java @ 201:3169b559ca3c

Build models for wsts, wst columns and q ranges and store them in the backend. flys-backend/trunk@1549 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 23 Mar 2011 15:22:32 +0000
parents a33c065b95eb
children 67fd63e4ef66
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java	Wed Mar 23 10:46:58 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java	Wed Mar 23 15:22:32 2011 +0000
@@ -1,17 +1,67 @@
 package de.intevation.flys.importer;
 
+import java.math.BigDecimal;
+
 import de.intevation.flys.model.WstQRange;
+import de.intevation.flys.model.River;
+import de.intevation.flys.model.Range;
+
+import org.hibernate.Session;
+import org.hibernate.Query;
+
+import java.util.List;
 
 public class ImportWstQRange
 {
+    protected ImportRange range;
+    protected BigDecimal  q;
+
     protected WstQRange peer;
 
     public ImportWstQRange() {
     }
 
-    public WstQRange getPeer() {
+    public ImportWstQRange(
+        ImportRange range,
+        BigDecimal  q
+    ) {
+        this.range = range;
+        this.q     = q;
+    }
+
+    public ImportRange getRange() {
+        return range;
+    }
+
+    public void setRange(ImportRange range) {
+        this.range = range;
+    }
+
+    public BigDecimal getQ() {
+        return q;
+    }
+
+    public void setQ(BigDecimal q) {
+        this.q = q;
+    }
+
+    public WstQRange getPeer(River river) {
         if (peer == null) {
-            // TODO: Implement me!
+            Range r = range.getPeer(river);
+            Session session = Importer.sessionHolder.get();
+            Query query = session.createQuery(
+                "from WstQRange where " +
+                "range=:range and q=:q");
+            query.setParameter("range", r);
+            query.setParameter("q",     q);
+            List<WstQRange> wstQRanges = query.list();
+            if (wstQRanges.isEmpty()) {
+                peer = new WstQRange(r, q);
+                session.save(peer);
+            }
+            else {
+                peer = wstQRanges.get(0);
+            }
         }
         return peer;
     }

http://dive4elements.wald.intevation.org