aheinecke@5552: package de.intevation.flys.model;
aheinecke@5552: 
aheinecke@5552: import java.io.Serializable;
aheinecke@5552: import java.math.BigDecimal;
aheinecke@5552: import java.util.List;
aheinecke@5552: 
aheinecke@5552: import javax.persistence.Column;
aheinecke@5552: import javax.persistence.Entity;
aheinecke@5552: import javax.persistence.Id;
aheinecke@5552: import javax.persistence.JoinColumn;
aheinecke@5552: import javax.persistence.OneToOne;
aheinecke@5552: import javax.persistence.Table;
aheinecke@5552: 
aheinecke@5552: import org.hibernate.Session;
aheinecke@5552: import org.hibernate.Query;
aheinecke@5552: import org.hibernate.annotations.Type;
aheinecke@5552: 
aheinecke@5552: import com.vividsolutions.jts.geom.Point;
aheinecke@5552: 
aheinecke@5552: import de.intevation.flys.backend.SessionHolder;
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552: @Entity
aheinecke@5552: @Table(name = "flood_marks")
aheinecke@5552: public class Floodmark
aheinecke@5552: implements   Serializable
aheinecke@5552: {
aheinecke@5552:     private Integer    id;
aheinecke@5552:     private River      river;
aheinecke@5552:     private Integer    z;
aheinecke@5552:     private Integer    year;
aheinecke@5552:     private BigDecimal km;
aheinecke@5552:     private Point      geom;
aheinecke@5552: 
aheinecke@5552:     public Floodmark() {
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @Id
aheinecke@5552:     @Column(name = "id")
aheinecke@5552:     public Integer getId() {
aheinecke@5552:         return id;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setId(Integer id) {
aheinecke@5552:         this.id = id;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @OneToOne
aheinecke@5552:     @JoinColumn(name = "river_id")
aheinecke@5552:     public River getRiver() {
aheinecke@5552:         return river;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setRiver(River river) {
aheinecke@5552:         this.river = river;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @Column(name = "z")
aheinecke@5552:     public Integer getZ() {
aheinecke@5552:         return z;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setZ(Integer z) {
aheinecke@5552:         this.z = z;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @Column(name = "year")
aheinecke@5552:     public Integer getYear() {
aheinecke@5552:         return year;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setYear(Integer year) {
aheinecke@5552:         this.year = year;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @Column(name = "km")
aheinecke@5552:     public BigDecimal getKm() {
aheinecke@5552:         return km;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setKm(BigDecimal km) {
aheinecke@5552:         this.km = km;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     @Column(name = "geom")
aheinecke@5552:     @Type(type = "org.hibernatespatial.GeometryUserType")
aheinecke@5552:     public Point getGeom() {
aheinecke@5552:         return geom;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552: 
aheinecke@5552:     public void setGeom(Point geom) {
aheinecke@5552:         this.geom = geom;
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552:     public static List<Floodmark> getFloodmarks(int riverId) {
aheinecke@5552:         Session session = SessionHolder.HOLDER.get();
aheinecke@5552: 
aheinecke@5552:         Query query = session.createQuery(
aheinecke@5552:             "from Floodmark where river.id =:river_id");
aheinecke@5552:         query.setParameter("river_id", riverId);
aheinecke@5552: 
aheinecke@5552:         return query.list();
aheinecke@5552:     }
aheinecke@5552: 
aheinecke@5552:     public static List<Floodmark> getFloodmarks(int riverId, int year) {
aheinecke@5552:         Session session = SessionHolder.HOLDER.get();
aheinecke@5552: 
aheinecke@5552:         Query query = session.createQuery(
aheinecke@5552:             "from Floodmark where river.id =:river_id and year = :year");
aheinecke@5552:         query.setParameter("river_id", riverId);
aheinecke@5552:         query.setParameter("year", year);
aheinecke@5552: 
aheinecke@5552:         return query.list();
aheinecke@5552:     }
aheinecke@5552: }
aheinecke@5552: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
aheinecke@5552: