# HG changeset patch # User Ingo Weinzierl # Date 1320855920 0 # Node ID efe19e669092748bc8661998ebeb0f54633ad9c9 # Parent a8f408fdf58c6e142b3f1026ec31b565644f32a2 Added and registered a model Catchment for 'catchment' relation. flys-backend/trunk@3202 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r a8f408fdf58c -r efe19e669092 flys-backend/ChangeLog --- a/flys-backend/ChangeLog Wed Nov 09 16:01:16 2011 +0000 +++ b/flys-backend/ChangeLog Wed Nov 09 16:25:20 2011 +0000 @@ -1,3 +1,11 @@ +2011-11-09 Ingo Weinzierl + + * src/main/java/de/intevation/flys/model/Catchment.java: New. A model for + the 'catchment' relation. + + * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: + Registered the Catchment model. + 2011-11-09 Ingo Weinzierl * doc/schema/postgresql-spatial.sql: Synced "hws" relation with oracle diff -r a8f408fdf58c -r efe19e669092 flys-backend/src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java --- a/flys-backend/src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java Wed Nov 09 16:01:16 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java Wed Nov 09 16:25:20 2011 +0000 @@ -25,6 +25,7 @@ import de.intevation.flys.model.AnnotationType; import de.intevation.flys.model.Attribute; import de.intevation.flys.model.Building; +import de.intevation.flys.model.Catchment; import de.intevation.flys.model.CrossSection; import de.intevation.flys.model.CrossSectionLine; import de.intevation.flys.model.CrossSectionPoint; @@ -212,6 +213,7 @@ cfg.addAnnotatedClass(AnnotationType.class); cfg.addAnnotatedClass(Attribute.class); cfg.addAnnotatedClass(Building.class); + cfg.addAnnotatedClass(Catchment.class); cfg.addAnnotatedClass(CrossSection.class); cfg.addAnnotatedClass(CrossSectionLine.class); cfg.addAnnotatedClass(CrossSectionPoint.class); diff -r a8f408fdf58c -r efe19e669092 flys-backend/src/main/java/de/intevation/flys/model/Catchment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/model/Catchment.java Wed Nov 09 16:25:20 2011 +0000 @@ -0,0 +1,106 @@ +package de.intevation.flys.model; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.hibernate.Session; +import org.hibernate.Query; +import org.hibernate.annotations.Type; + +import com.vividsolutions.jts.geom.Polygon; + +import de.intevation.flys.backend.SessionHolder; + + +@Entity +@Table(name = "catchment") +public class Catchment +implements Serializable +{ + private Integer id; + private BigDecimal area; + private String name; + private River river; + private Polygon geom; + + public Catchment() { + } + + + @Id + @Column(name = "id") + public Integer getId() { + return id; + } + + + public void setId(Integer id) { + this.id = id; + } + + + @OneToOne + @JoinColumn(name = "river_id") + public River getRiver() { + return river; + } + + + public void setRiver(River river) { + this.river = river; + } + + + @Column(name = "name") + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + @Column(name = "area") + public BigDecimal getArea() { + return area; + } + + + public void setArea(BigDecimal area) { + this.area = area; + } + + + @Column(name = "geom") + @Type(type = "org.hibernatespatial.GeometryUserType") + public Polygon getGeom() { + return geom; + } + + + public void setGeom(Polygon geom) { + this.geom = geom; + } + + + public static List getCatchments(int riverId) { + Session session = SessionHolder.HOLDER.get(); + + Query query = session.createQuery( + "from Catchment where river.id =:river_id"); + query.setParameter("river_id", riverId); + + return query.list(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :