comparison backend/src/main/java/org/dive4elements/river/model/CrossSectionTrack.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-backend/src/main/java/org/dive4elements/river/model/CrossSectionTrack.java@18619c1e7c2a
children 4dd33b86dc61
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.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 org.dive4elements.river.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 :

http://dive4elements.wald.intevation.org