Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/model/Catchment.java @ 4837:9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
* Get all (including empty datasets) from db.
* Filter empty datasets when processing data of the same date.
* Added debug outputs.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 23 Jan 2013 11:14:41 +0100 |
parents | a6ef300748c4 |
children |
rev | line source |
---|---|
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.model; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.io.Serializable; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.math.BigDecimal; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import java.util.List; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import javax.persistence.Column; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import javax.persistence.Entity; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import javax.persistence.Id; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import javax.persistence.JoinColumn; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import javax.persistence.OneToOne; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import javax.persistence.Table; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import org.hibernate.Session; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import org.hibernate.Query; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import org.hibernate.annotations.Type; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
2864
bb116a8d6e19
Changed the geometry type of 'catchments' from polygon to multipolygon.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2364
diff
changeset
|
18 import com.vividsolutions.jts.geom.Geometry; |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.flys.backend.SessionHolder; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 @Entity |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 @Table(name = "catchment") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 public class Catchment |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 implements Serializable |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 private Integer id; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 private BigDecimal area; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 private String name; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 private River river; |
2864
bb116a8d6e19
Changed the geometry type of 'catchments' from polygon to multipolygon.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2364
diff
changeset
|
32 private Geometry geom; |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 public Catchment() { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 @Id |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 @Column(name = "id") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 public Integer getId() { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 return id; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 public void setId(Integer id) { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 this.id = id; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 @OneToOne |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 @JoinColumn(name = "river_id") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 public River getRiver() { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 return river; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 public void setRiver(River river) { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 this.river = river; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 @Column(name = "name") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 public String getName() { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 return name; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 public void setName(String name) { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 this.name = name; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 @Column(name = "area") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 public BigDecimal getArea() { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 return area; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 public void setArea(BigDecimal area) { |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 this.area = area; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 @Column(name = "geom") |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 @Type(type = "org.hibernatespatial.GeometryUserType") |
2864
bb116a8d6e19
Changed the geometry type of 'catchments' from polygon to multipolygon.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2364
diff
changeset
|
86 public Geometry getGeom() { |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 return geom; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 |
2864
bb116a8d6e19
Changed the geometry type of 'catchments' from polygon to multipolygon.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2364
diff
changeset
|
91 public void setGeom(Geometry geom) { |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 this.geom = geom; |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 |
2865
a6ef300748c4
Modified Catchment.getCatchments() to retrieve specific catchments.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2864
diff
changeset
|
96 public static List<Catchment> getCatchments(int riverId, String name) { |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 Session session = SessionHolder.HOLDER.get(); |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 Query query = session.createQuery( |
2865
a6ef300748c4
Modified Catchment.getCatchments() to retrieve specific catchments.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2864
diff
changeset
|
100 "from Catchment where river.id =:river_id AND name=:name"); |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 query.setParameter("river_id", riverId); |
2865
a6ef300748c4
Modified Catchment.getCatchments() to retrieve specific catchments.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2864
diff
changeset
|
102 query.setParameter("name", name); |
2364
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 return query.list(); |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 } |
efe19e669092
Added and registered a model Catchment for 'catchment' relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |