diff flys-backend/src/main/java/de/intevation/flys/importer/ImportAnnotation.java @ 759:9f2204ed79ed

Import edges to database. flys-backend/trunk@2107 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 14 Jun 2011 13:13:58 +0000
parents 67fd63e4ef66
children 3170fe2e7661
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportAnnotation.java	Tue Jun 14 12:34:08 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportAnnotation.java	Tue Jun 14 13:13:58 2011 +0000
@@ -5,6 +5,7 @@
 import de.intevation.flys.model.Position;
 import de.intevation.flys.model.Attribute;
 import de.intevation.flys.model.River;
+import de.intevation.flys.model.Edge;
 
 import org.hibernate.Session;
 import org.hibernate.Query;
@@ -17,6 +18,7 @@
     protected ImportAttribute attribute;
     protected ImportPosition  position;
     protected ImportRange     range;
+    protected ImportEdge      edge;
 
     protected Annotation      peer;
 
@@ -26,11 +28,13 @@
     public ImportAnnotation(
         ImportAttribute attribute,
         ImportPosition  position,
-        ImportRange     range
+        ImportRange     range,
+        ImportEdge      edge
     ) {
         this.attribute = attribute;
         this.position  = position;
         this.range     = range;
+        this.edge      = edge;
     }
 
     public int compareTo(ImportAnnotation other) {
@@ -47,7 +51,11 @@
             return d;
         }
 
-        return 0;
+        if (edge == null && other.edge != null) return -1;
+        if (edge != null && other.edge == null) return +1;
+        if (edge == null && other.edge == null) return 0;
+
+        return edge.compareTo(other.edge);
     }
 
     public ImportAttribute getAttribute() {
@@ -79,13 +87,18 @@
             Range     r = range.getPeer(river);
             Attribute a = attribute.getPeer();
             Position  p = position.getPeer();
+            Edge      e = edge != null ? edge.getPeer() : null;
             Session session = ImporterSession.getInstance().getDatabaseSession();
             Query query = session.createQuery(
-                "from Annotation where " +
-                "range=:range and attribute=:attribute and position=:position");
+                "from Annotation where "    +
+                "range=:range and "         +
+                "attribute=:attribute and " +
+                "position=:position and "   +
+                "edge=:edge");
             query.setParameter("range",     r);
             query.setParameter("attribute", a);
             query.setParameter("position",  p);
+            query.setParameter("edge",      e);
             List<Annotation> annotations = query.list();
             if (annotations.isEmpty()) {
                 peer = new Annotation(r, a, p);

http://dive4elements.wald.intevation.org