diff flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.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/ImportWstColumnQRange.java	Wed Mar 23 10:46:58 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java	Wed Mar 23 15:22:32 2011 +0000
@@ -1,17 +1,67 @@
 package de.intevation.flys.importer;
 
 import de.intevation.flys.model.WstColumnQRange;
+import de.intevation.flys.model.WstQRange;
+import de.intevation.flys.model.WstColumn;
+import de.intevation.flys.model.River;
+
+import org.hibernate.Session;
+import org.hibernate.Query;
+
+import java.util.List;
 
 public class ImportWstColumnQRange
 {
+    protected ImportWstColumn wstColumn;
+    protected ImportWstQRange qRange;
+
     protected WstColumnQRange peer;
 
     public ImportWstColumnQRange() {
     }
 
-    public WstColumnQRange getPeer() {
+    public ImportWstColumnQRange(
+        ImportWstColumn wstColumn,
+        ImportWstQRange qRange
+    ) {
+        this.wstColumn = wstColumn;
+        this.qRange    = qRange;
+    }
+
+    public ImportWstColumn getWstColumn() {
+        return wstColumn;
+    }
+
+    public void setWstColumn(ImportWstColumn wstColumn) {
+        this.wstColumn = wstColumn;
+    }
+
+    public ImportWstQRange getQRange() {
+        return qRange;
+    }
+
+    public void setQRange(ImportWstQRange qRange) {
+        this.qRange = qRange;
+    }
+
+    public WstColumnQRange getPeer(River river) {
         if (peer == null) {
-            // TODO: Implement me!
+            WstColumn c = wstColumn.getPeer(river);
+            WstQRange q = qRange.getPeer(river);
+            Session session = Importer.sessionHolder.get();
+            Query query = session.createQuery(
+                "from WstColumnQRange where " +
+                "wstColumn=:c and wstQRange=:q");
+            query.setParameter("c", c);
+            query.setParameter("q", q);
+            List<WstColumnQRange> cols = query.list();
+            if (cols.isEmpty()) {
+                peer = new WstColumnQRange(c, q);
+                session.save(peer);
+            }
+            else {
+                peer = cols.get(0);
+            }
         }
         return peer;
     }

http://dive4elements.wald.intevation.org