Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/model/RiverAxis.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/RiverAxis.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.util.List; | |
5 | |
6 import javax.persistence.Column; | |
7 import javax.persistence.Entity; | |
8 import javax.persistence.Id; | |
9 import javax.persistence.JoinColumn; | |
10 import javax.persistence.OneToOne; | |
11 import javax.persistence.Table; | |
12 | |
13 import org.hibernate.HibernateException; | |
14 import org.hibernate.Session; | |
15 import org.hibernate.Query; | |
16 import org.hibernate.annotations.Type; | |
17 | |
18 import com.vividsolutions.jts.geom.MultiLineString; | |
19 | |
20 import org.dive4elements.river.backend.SessionHolder; | |
21 import org.dive4elements.river.model.AxisKind; | |
22 | |
23 | |
24 /** | |
25 * A river has one axis that is used for calculation. | |
26 * Additional axes of a river can be used to be painted int maps etc. | |
27 * which one is the main river axis can be determined over the axis kind. | |
28 */ | |
29 @Entity | |
30 @Table(name = "river_axes") | |
31 public class RiverAxis | |
32 implements Serializable | |
33 { | |
34 private Integer id; | |
35 private AxisKind kind; | |
36 private River river; | |
37 private String name; | |
38 private MultiLineString geom; | |
39 | |
40 public static final int KIND_UNKOWN = 0; | |
41 public static final int KIND_CURRENT = 1; | |
42 public static final int KIND_OTHER = 2; | |
43 | |
44 public RiverAxis() { | |
45 } | |
46 | |
47 | |
48 @Id | |
49 @Column(name = "id") | |
50 public Integer getId() { | |
51 return id; | |
52 } | |
53 | |
54 | |
55 public void setId(Integer id) { | |
56 this.id = id; | |
57 } | |
58 | |
59 | |
60 @OneToOne | |
61 @JoinColumn(name = "river_id") | |
62 public River getRiver() { | |
63 return river; | |
64 } | |
65 | |
66 | |
67 public void setRiver(River river) { | |
68 this.river = river; | |
69 } | |
70 | |
71 @Column(name = "name") | |
72 public String getName() { | |
73 return name; | |
74 } | |
75 | |
76 | |
77 public void setName(String name) { | |
78 this.name = name; | |
79 } | |
80 | |
81 /** | |
82 * Get kind. | |
83 * | |
84 * @return kind as AxisKind. | |
85 */ | |
86 @OneToOne | |
87 @JoinColumn(name = "kind_id") | |
88 public AxisKind getKind() { | |
89 return kind; | |
90 } | |
91 | |
92 /** | |
93 * Set kind. | |
94 * | |
95 * @param kind the value to set. | |
96 */ | |
97 public void setKind(AxisKind kind) { | |
98 this.kind = kind; | |
99 } | |
100 | |
101 | |
102 @Column(name = "geom") | |
103 @Type(type = "org.hibernatespatial.GeometryUserType") | |
104 public MultiLineString getGeom() { | |
105 return geom; | |
106 } | |
107 | |
108 | |
109 public void setGeom(MultiLineString geom) { | |
110 this.geom = geom; | |
111 } | |
112 | |
113 | |
114 public static List<RiverAxis> getRiverAxis(String river) | |
115 throws IllegalArgumentException { | |
116 return getRiverAxis(river, KIND_CURRENT); | |
117 } | |
118 | |
119 public static List<RiverAxis> getRiverAxis(String river, String name, int kind) | |
120 throws HibernateException { | |
121 Session session = SessionHolder.HOLDER.get(); | |
122 Query query = session.createQuery( | |
123 "from RiverAxis as ax where river.name =:river" + | |
124 " and kind.id =:kind" + | |
125 " and ax.name=:name"); | |
126 query.setParameter("river", river); | |
127 query.setParameter("kind", kind); | |
128 query.setParameter("name", name); | |
129 | |
130 List<RiverAxis> list = query.list(); | |
131 return list.isEmpty() ? null : list; | |
132 } | |
133 | |
134 public static List<RiverAxis> getRiverAxis(String river, int kind) | |
135 throws HibernateException { | |
136 Session session = SessionHolder.HOLDER.get(); | |
137 Query query = session.createQuery( | |
138 "from RiverAxis where river.name =:river AND kind.id =:kind"); | |
139 query.setParameter("river", river); | |
140 query.setParameter("kind", kind); | |
141 | |
142 List<RiverAxis> list = query.list(); | |
143 return list.isEmpty() ? null : list; | |
144 } | |
145 } | |
146 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |