changeset 758:bf16268629d9

Added 'Kanten' model flys-backend/trunk@2106 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 14 Jun 2011 12:34:08 +0000
parents c19d4c643526
children 9f2204ed79ed
files flys-backend/ChangeLog flys-backend/doc/schema/postgresql.sql flys-backend/src/main/java/de/intevation/flys/model/Annotation.java flys-backend/src/main/java/de/intevation/flys/model/Edge.java
diffstat 4 files changed, 116 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/flys-backend/ChangeLog	Wed Jun 08 19:03:44 2011 +0000
+++ b/flys-backend/ChangeLog	Tue Jun 14 12:34:08 2011 +0000
@@ -1,3 +1,20 @@
+2011-06-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* doc/schema/postgresql.sql: Added table edges to model 'Kanten' of an annotation.
+	  To update existing databases:
+	    BEGIN;
+	      CREATE SEQUENCE EDGES_ID_SEQ;
+	      CREATE TABLE edges (
+	        id     int PRIMARY KEY NOT NULL,
+	        top    NUMERIC,
+	        bottom NUMERIC);
+	      ALTER TABLE annotations ADD COLUMN edge_id int REFERENCES edges(id);
+	    COMMIT;
+
+	* src/main/java/de/intevation/flys/model/Edge.java: New. A 'Kanten'-Model.
+	* src/main/java/de/intevation/flys/model/Annotation.java: References the
+	  edges.
+	
 2011-06-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
 
 	* src/main/java/de/intevation/flys/model/River.java:
--- a/flys-backend/doc/schema/postgresql.sql	Wed Jun 08 19:03:44 2011 +0000
+++ b/flys-backend/doc/schema/postgresql.sql	Tue Jun 14 12:34:08 2011 +0000
@@ -36,6 +36,15 @@
     value VARCHAR(256)    NOT NULL UNIQUE
 );
 
+-- Kante 'oben', 'unten'
+CREATE SEQUENCE EDGES_ID_SEQ;
+
+CREATE TABLE edges (
+    id     int PRIMARY KEY NOT NULL,
+    top    NUMERIC,
+    bottom NUMERIC
+);
+
 -- Some object (eg. Hafen) at a segment of river
 -- plus its position.
 CREATE SEQUENCE ANNOTATIONS_ID_SEQ;
@@ -44,7 +53,8 @@
     id           int PRIMARY KEY NOT NULL,
     range_id     int             NOT NULL REFERENCES ranges(id),
     attribute_id int             NOT NULL REFERENCES attributes(id),
-    position_id  int REFERENCES positions(id)
+    position_id  int REFERENCES positions(id),
+    edge_id      int REFERENCES edges(id)
 );
 
 -- Pegel
--- a/flys-backend/src/main/java/de/intevation/flys/model/Annotation.java	Wed Jun 08 19:03:44 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/model/Annotation.java	Tue Jun 14 12:34:08 2011 +0000
@@ -21,14 +21,25 @@
     private Range      range;
     private Attribute  attribute;
     private Position   position;
+    private Edge       edge;
 
     public Annotation() {
     }
 
     public Annotation(Range range, Attribute attribute, Position position) {
+        this(range, attribute, position, null);
+    }
+
+    public Annotation(
+        Range     range,
+        Attribute attribute,
+        Position  position,
+        Edge      edge
+    ) {
         this.range     = range;
         this.attribute = attribute;
         this.position  = position;
+        this.edge      = edge;
     }
 
     @Id
@@ -77,5 +88,15 @@
     public void setPosition(Position position) {
         this.position = position;
     }
+
+    @OneToOne
+    @JoinColumn(name = "edge_id")
+    public Edge getEdge() {
+        return edge;
+    }
+
+    public void setEdge(Edge edge) {
+        this.edge = edge;
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/model/Edge.java	Tue Jun 14 12:34:08 2011 +0000
@@ -0,0 +1,67 @@
+package de.intevation.flys.model;
+
+import java.io.Serializable;
+
+import java.math.BigDecimal;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Column;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.GenerationType;
+
+@Entity
+@Table(name = "edges")
+public class Edge
+implements   Serializable
+{
+    private Integer    id;
+    private BigDecimal top;
+    private BigDecimal bottom;
+
+    public Edge() {
+    }
+
+    public Edge(BigDecimal top, BigDecimal bottom) {
+        this.top    = top;
+        this.bottom = bottom;
+    }
+
+    @Id
+    @SequenceGenerator(
+        name           = "SEQUENCE_EDGES_ID_SEQ",
+        sequenceName   = "EDGES_ID_SEQ",
+        allocationSize = 1)
+    @GeneratedValue(
+        strategy  = GenerationType.SEQUENCE,
+        generator = "SEQUENCE_EDGES_ID_SEQ")
+    @Column(name = "id")
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    @Column(name = "top")
+    public BigDecimal getTop() {
+        return top;
+    }
+
+    public void setTop(BigDecimal top) {
+        this.top = top;
+    }
+
+    @Column(name = "bottom")
+    public BigDecimal getBottom() {
+        return bottom;
+    }
+
+    public void setBottom(BigDecimal bottom) {
+        this.bottom = bottom;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org