Mercurial > dive4elements > river
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);