Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/model/RiverAxisKm.java @ 9563:3955ecc1a516
Restrict inundation map to selected river range
author | gernotbelger |
---|---|
date | Mon, 29 Oct 2018 17:57:30 +0100 |
parents | 4c3ccf2b0304 |
children |
comparison
equal
deleted
inserted
replaced
9562:2b1626fa4a95 | 9563:3955ecc1a516 |
---|---|
8 | 8 |
9 package org.dive4elements.river.model; | 9 package org.dive4elements.river.model; |
10 | 10 |
11 import java.io.Serializable; | 11 import java.io.Serializable; |
12 import java.math.BigDecimal; | 12 import java.math.BigDecimal; |
13 import java.util.Collections; | |
13 import java.util.List; | 14 import java.util.List; |
14 | 15 |
15 import javax.persistence.Column; | 16 import javax.persistence.Column; |
16 import javax.persistence.Entity; | 17 import javax.persistence.Entity; |
17 import javax.persistence.Id; | 18 import javax.persistence.Id; |
18 import javax.persistence.JoinColumn; | 19 import javax.persistence.JoinColumn; |
19 import javax.persistence.OneToOne; | 20 import javax.persistence.OneToOne; |
20 import javax.persistence.Table; | 21 import javax.persistence.Table; |
21 | 22 |
23 import org.dive4elements.river.backend.SessionHolder; | |
24 import org.hibernate.Query; | |
22 import org.hibernate.Session; | 25 import org.hibernate.Session; |
23 import org.hibernate.Query; | |
24 import org.hibernate.annotations.Type; | 26 import org.hibernate.annotations.Type; |
25 | 27 |
26 import com.vividsolutions.jts.geom.Point; | 28 import com.vividsolutions.jts.geom.Point; |
27 | 29 |
28 import org.dive4elements.river.backend.SessionHolder; | |
29 | |
30 | |
31 @Entity | 30 @Entity |
32 @Table(name = "river_axes_km") | 31 @Table(name = "river_axes_km") |
33 public class RiverAxisKm | 32 public class RiverAxisKm implements Serializable { |
34 implements Serializable | 33 |
35 { | 34 private static final long serialVersionUID = 1L; |
36 private Integer id; | 35 |
37 private River river; | 36 private Integer id; |
37 private River river; | |
38 private BigDecimal km; | 38 private BigDecimal km; |
39 private Point geom; | 39 private Point geom; |
40 | |
41 | 40 |
42 public RiverAxisKm() { | 41 public RiverAxisKm() { |
43 } | 42 } |
44 | 43 |
45 | |
46 @Id | 44 @Id |
47 @Column(name = "id") | 45 @Column(name = "id") |
48 public Integer getId() { | 46 public Integer getId() { |
49 return id; | 47 return this.id; |
50 } | 48 } |
51 | 49 |
52 | 50 public void setId(final Integer id) { |
53 public void setId(Integer id) { | |
54 this.id = id; | 51 this.id = id; |
55 } | 52 } |
56 | |
57 | 53 |
58 @OneToOne | 54 @OneToOne |
59 @JoinColumn(name = "river_id") | 55 @JoinColumn(name = "river_id") |
60 public River getRiver() { | 56 public River getRiver() { |
61 return river; | 57 return this.river; |
62 } | 58 } |
63 | 59 |
64 | 60 public void setRiver(final River river) { |
65 public void setRiver(River river) { | |
66 this.river = river; | 61 this.river = river; |
67 } | 62 } |
68 | 63 |
69 | |
70 @Column(name = "km") | 64 @Column(name = "km") |
71 public BigDecimal getKm() { | 65 public BigDecimal getKm() { |
72 return km; | 66 return this.km; |
73 } | 67 } |
74 | 68 |
75 | 69 public void setKm(final BigDecimal km) { |
76 public void setKm(BigDecimal km) { | |
77 this.km = km; | 70 this.km = km; |
78 } | 71 } |
79 | |
80 | 72 |
81 @Column(name = "geom") | 73 @Column(name = "geom") |
82 @Type(type = "org.hibernatespatial.GeometryUserType") | 74 @Type(type = "org.hibernatespatial.GeometryUserType") |
83 public Point getGeom() { | 75 public Point getGeom() { |
84 return geom; | 76 return this.geom; |
85 } | 77 } |
86 | 78 |
87 | 79 public void setGeom(final Point geom) { |
88 public void setGeom(Point geom) { | |
89 this.geom = geom; | 80 this.geom = geom; |
90 } | 81 } |
91 | |
92 | 82 |
93 /** | 83 /** |
94 * Returns a list of RiverAxisKm objects for a given river. | 84 * Returns a list of RiverAxisKm objects for a given river. |
95 * | 85 * |
96 * @param riverid The ID of a river in the database. | 86 * @param riverid |
87 * The ID of a river in the database. | |
97 * | 88 * |
98 * @return a list of RiverAxisKm objects. | 89 * @return a list of RiverAxisKm objects. |
99 */ | 90 */ |
100 public static List<RiverAxisKm> getRiverAxisKms(int riverid) { | 91 public static List<RiverAxisKm> getRiverAxisKms(final int riverid) { |
101 Session session = SessionHolder.HOLDER.get(); | 92 final Session session = SessionHolder.HOLDER.get(); |
102 | 93 |
103 Query query = session.createQuery( | 94 final Query query = session.createQuery("from RiverAxisKm where river.id =:riverid"); |
104 "from RiverAxisKm where river.id =:riverid"); | |
105 query.setParameter("riverid", riverid); | 95 query.setParameter("riverid", riverid); |
106 | 96 |
107 List<RiverAxisKm> list = query.list(); | 97 final List<RiverAxisKm> list = query.list(); |
98 | |
99 return list; | |
100 } | |
101 | |
102 public static List<RiverAxisKm> getRiverAxisKms(final int riverId, final double lowerKm, final double upperKm) { | |
103 final Session session = SessionHolder.HOLDER.get(); | |
104 | |
105 assert lowerKm <= upperKm; | |
106 | |
107 if (Double.isNaN(lowerKm) || Double.isInfinite(lowerKm)) | |
108 return Collections.emptyList(); | |
109 if (Double.isNaN(upperKm) || Double.isInfinite(upperKm)) | |
110 return Collections.emptyList(); | |
111 | |
112 final BigDecimal fromKm = BigDecimal.valueOf(lowerKm); | |
113 final BigDecimal toKm = BigDecimal.valueOf(upperKm); | |
114 | |
115 final Query query = session.createQuery("from RiverAxisKm where river.id =:riverid AND km >= :fromKm AND km <= :toKm"); | |
116 query.setParameter("riverid", riverId); | |
117 query.setParameter("fromKm", fromKm); | |
118 query.setParameter("toKm", toKm); | |
119 | |
120 final List<RiverAxisKm> list = query.list(); | |
108 | 121 |
109 return list; | 122 return list; |
110 } | 123 } |
111 } | 124 } |
112 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |