Mercurial > dive4elements > river
comparison flys-backend/src/main/java/org/dive4elements/river/model/CrossSectionTrack.java @ 5828:dfb26b03b179
Moved directories to org.dive4elements.river
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 11:53:11 +0200 |
parents | flys-backend/src/main/java/de/intevation/flys/model/CrossSectionTrack.java@c8e74e5e828c |
children | 18619c1e7c2a |
comparison
equal
deleted
inserted
replaced
5827:e308d4ecd35a | 5828:dfb26b03b179 |
---|---|
1 package de.intevation.flys.model; | |
2 | |
3 import java.io.Serializable; | |
4 import java.math.BigDecimal; | |
5 import java.util.List; | |
6 | |
7 import javax.persistence.Column; | |
8 import javax.persistence.Entity; | |
9 import javax.persistence.Id; | |
10 import javax.persistence.JoinColumn; | |
11 import javax.persistence.OneToOne; | |
12 import javax.persistence.Table; | |
13 | |
14 import org.hibernate.Query; | |
15 import org.hibernate.Session; | |
16 import org.hibernate.annotations.Type; | |
17 | |
18 import com.vividsolutions.jts.geom.LineString; | |
19 | |
20 import de.intevation.flys.backend.SessionHolder; | |
21 | |
22 | |
23 @Entity | |
24 @Table(name = "cross_section_tracks") | |
25 public class CrossSectionTrack | |
26 implements Serializable | |
27 { | |
28 private Integer id; | |
29 private River river; | |
30 private String name; | |
31 private LineString geom; | |
32 private BigDecimal km; | |
33 private BigDecimal z; | |
34 | |
35 public CrossSectionTrack() { | |
36 } | |
37 | |
38 | |
39 @Id | |
40 @Column(name = "id") | |
41 public Integer getId() { | |
42 return id; | |
43 } | |
44 | |
45 | |
46 public void setId(Integer id) { | |
47 this.id = id; | |
48 } | |
49 | |
50 | |
51 @OneToOne | |
52 @JoinColumn(name = "river_id") | |
53 public River getRiver() { | |
54 return river; | |
55 } | |
56 | |
57 | |
58 public void setRiver(River river) { | |
59 this.river = river; | |
60 } | |
61 | |
62 | |
63 @Column(name = "name") | |
64 public String getName() { | |
65 return name; | |
66 } | |
67 | |
68 | |
69 public void setName(String name) { | |
70 this.name = name; | |
71 } | |
72 | |
73 | |
74 @Column(name = "geom") | |
75 @Type(type = "org.hibernatespatial.GeometryUserType") | |
76 public LineString getGeom() { | |
77 return geom; | |
78 } | |
79 | |
80 | |
81 public void setGeom(LineString geom) { | |
82 this.geom = geom; | |
83 } | |
84 | |
85 | |
86 @Column(name = "km") | |
87 public BigDecimal getKm() { | |
88 return km; | |
89 } | |
90 | |
91 | |
92 public void setKm(BigDecimal km) { | |
93 this.km = km; | |
94 } | |
95 | |
96 | |
97 @Column(name = "z") | |
98 public BigDecimal getZ() { | |
99 return z; | |
100 } | |
101 | |
102 | |
103 public void setZ(BigDecimal z) { | |
104 this.z = z; | |
105 } | |
106 | |
107 | |
108 public static List<CrossSectionTrack> getCrossSectionTrack( | |
109 String river) | |
110 { | |
111 Session session = SessionHolder.HOLDER.get(); | |
112 | |
113 Query query = session.createQuery( | |
114 "from CrossSectionTrack where river.name =:river"); | |
115 query.setParameter("river", river); | |
116 | |
117 return query.list(); | |
118 } | |
119 | |
120 | |
121 public static List<CrossSectionTrack> getCrossSectionTrack( | |
122 String river, | |
123 String name | |
124 ) { | |
125 Session session = SessionHolder.HOLDER.get(); | |
126 | |
127 Query query = session.createQuery( | |
128 "from CrossSectionTrack as cst " + | |
129 " where river.name =:river" + | |
130 " and cst.name=:name"); | |
131 query.setParameter("river", river); | |
132 query.setParameter("name", name); | |
133 | |
134 return query.list(); | |
135 } | |
136 | |
137 public static List<CrossSectionTrack> getCrossSectionTrack( | |
138 String river, | |
139 int kind_id | |
140 ) { | |
141 Session session = SessionHolder.HOLDER.get(); | |
142 | |
143 Query query = session.createQuery( | |
144 "from CrossSectionTrack as cst " + | |
145 " where river.name =:river" + | |
146 " and kind_id=:kind_id"); | |
147 query.setParameter("river", river); | |
148 query.setParameter("kind_id", kind_id); | |
149 | |
150 return query.list(); | |
151 } | |
152 | |
153 public static List<CrossSectionTrack> getCrossSectionTrack( | |
154 String river, | |
155 String name, | |
156 int kind_id | |
157 ) { | |
158 Session session = SessionHolder.HOLDER.get(); | |
159 | |
160 Query query = session.createQuery( | |
161 "from CrossSectionTrack as cst " + | |
162 " where river.name =:river" + | |
163 " and cst.name=:name" + | |
164 " and kind_id=:kind_id"); | |
165 query.setParameter("river", river); | |
166 query.setParameter("name", name); | |
167 query.setParameter("kind_id", kind_id); | |
168 | |
169 return query.list(); | |
170 } | |
171 | |
172 | |
173 /** | |
174 * Returns the nearest CrossSectionTrack of <i>river</i> to a given | |
175 * <i>km</i>. | |
176 * | |
177 * @param river The name of a river. | |
178 * @param km The kilometer value. | |
179 * | |
180 * @return the nearest CrossSectionTrack to <i>km</i> of river <i>river</i>. | |
181 */ | |
182 public static CrossSectionTrack getCrossSectionTrack( | |
183 String river, | |
184 double km | |
185 ) { | |
186 Session session = SessionHolder.HOLDER.get(); | |
187 | |
188 Query query = session.createQuery( | |
189 "from CrossSectionTrack where river.name =:river " + | |
190 "and kind_id = 1 " + | |
191 "order by abs( km - :mykm)"); | |
192 query.setParameter("river", river); | |
193 query.setParameter("mykm", new BigDecimal(km)); | |
194 | |
195 List<CrossSectionTrack> cst = query.list(); | |
196 | |
197 return cst != null && !cst.isEmpty() ? cst.get(0) : null; | |
198 } | |
199 } | |
200 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |