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 :

http://dive4elements.wald.intevation.org