Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/model/MeasurementStation.java @ 8412:17db08570637
SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 15 Oct 2014 19:20:26 +0200 |
parents | d5d717effa06 |
children | ffbeffe2d266 |
comparison
equal
deleted
inserted
replaced
8411:b8c6cb36607e | 8412:17db08570637 |
---|---|
6 * documentation coming with Dive4Elements River for details. | 6 * documentation coming with Dive4Elements River for details. |
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.model; | 9 package org.dive4elements.river.model; |
10 | 10 |
11 import java.util.Iterator; | |
11 import java.util.List; | 12 import java.util.List; |
13 import java.util.ArrayList; | |
14 | |
15 import java.math.BigDecimal; | |
12 | 16 |
13 import javax.persistence.Column; | 17 import javax.persistence.Column; |
14 import javax.persistence.Entity; | 18 import javax.persistence.Entity; |
15 import javax.persistence.GeneratedValue; | 19 import javax.persistence.GeneratedValue; |
16 import javax.persistence.GenerationType; | 20 import javax.persistence.GenerationType; |
33 | 37 |
34 private String name; | 38 private String name; |
35 private String measurementType; | 39 private String measurementType; |
36 private String riverside; | 40 private String riverside; |
37 private String operator; | 41 private String operator; |
38 private String description; | 42 private String comment; |
39 | 43 |
40 private Double station; | |
41 private Range range; | 44 private Range range; |
42 | |
43 private River river; | |
44 | 45 |
45 private Gauge gauge; | 46 private Gauge gauge; |
46 private String gaugeName; | 47 private String gaugeName; |
47 | 48 |
48 private TimeInterval observationTimerange; | 49 private TimeInterval observationTimerange; |
49 | 50 |
50 public MeasurementStation() { | 51 public MeasurementStation() { |
51 } | 52 } |
52 | 53 |
53 public MeasurementStation(River river, String name, String measurementType, | 54 public MeasurementStation(String name, String measurementType, |
54 String riverside, Double station, Range range, Gauge gauge, | 55 String riverside, Range range, Gauge gauge, |
55 String gaugeName, TimeInterval observationTimerange, String operator, | 56 String gaugeName, TimeInterval observationTimerange, String operator, |
56 String description | 57 String comment |
57 ) { | 58 ) { |
58 this.river = river; | |
59 this.name = name; | 59 this.name = name; |
60 this.measurementType = measurementType; | 60 this.measurementType = measurementType; |
61 this.riverside = riverside; | 61 this.riverside = riverside; |
62 this.station = station; | |
63 this.range = range; | 62 this.range = range; |
64 this.gauge = gauge; | 63 this.gauge = gauge; |
65 this.gaugeName = gaugeName; | 64 this.gaugeName = gaugeName; |
66 this.observationTimerange = observationTimerange; | 65 this.observationTimerange = observationTimerange; |
67 this.operator = operator; | 66 this.operator = operator; |
68 this.description = description; | 67 this.comment = comment; |
69 } | 68 } |
70 | 69 |
71 @Id | 70 @Id |
72 @SequenceGenerator(name = "SEQ_MEASUREMENT_STATION_ID_SEQ", sequenceName = "MEASUREMENT_STATION_ID_SEQ", allocationSize = 1) | 71 @SequenceGenerator(name = "SEQ_MEASUREMENT_STATION_ID_SEQ", sequenceName = "MEASUREMENT_STATION_ID_SEQ", allocationSize = 1) |
73 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MEASUREMENT_STATION_ID_SEQ") | 72 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MEASUREMENT_STATION_ID_SEQ") |
106 public void setRiverside(String riverside) { | 105 public void setRiverside(String riverside) { |
107 this.riverside = riverside; | 106 this.riverside = riverside; |
108 } | 107 } |
109 | 108 |
110 @OneToOne | 109 @OneToOne |
111 @JoinColumn(name = "river_id") | |
112 public River getRiver() { | |
113 return river; | |
114 } | |
115 | |
116 public void setRiver(River river) { | |
117 this.river = river; | |
118 } | |
119 | |
120 @OneToOne | |
121 @JoinColumn(name = "reference_gauge_id") | 110 @JoinColumn(name = "reference_gauge_id") |
122 public Gauge getGauge() { | 111 public Gauge getGauge() { |
123 return gauge; | 112 return gauge; |
124 } | 113 } |
125 | 114 |
132 return gaugeName; | 121 return gaugeName; |
133 } | 122 } |
134 | 123 |
135 public void setGaugeName(String gaugeName) { | 124 public void setGaugeName(String gaugeName) { |
136 this.gaugeName = gaugeName; | 125 this.gaugeName = gaugeName; |
137 } | |
138 | |
139 @Column(name = "station") | |
140 public Double getStation() { | |
141 return station; | |
142 } | |
143 | |
144 public void setStation(Double station) { | |
145 this.station = station; | |
146 } | 126 } |
147 | 127 |
148 @OneToOne | 128 @OneToOne |
149 @JoinColumn(name = "range_id") | 129 @JoinColumn(name = "range_id") |
150 public Range getRange() { | 130 public Range getRange() { |
154 public void setRange(Range range) { | 134 public void setRange(Range range) { |
155 this.range = range; | 135 this.range = range; |
156 } | 136 } |
157 | 137 |
158 @OneToOne | 138 @OneToOne |
159 @JoinColumn(name = "observation_timerange_id") | 139 @JoinColumn(name = "time_interval_id") |
160 public TimeInterval getObservationTimerange() { | 140 public TimeInterval getObservationTimerange() { |
161 return observationTimerange; | 141 return observationTimerange; |
162 } | 142 } |
163 | 143 |
164 public void setObservationTimerange(TimeInterval observationTimerange) { | 144 public void setObservationTimerange(TimeInterval observationTimerange) { |
172 | 152 |
173 public void setOperator(String operator) { | 153 public void setOperator(String operator) { |
174 this.operator = operator; | 154 this.operator = operator; |
175 } | 155 } |
176 | 156 |
177 @Column(name = "description") | 157 @Column(name = "comment") |
178 public String getDescription() { | 158 public String getComment() { |
179 return description; | 159 return comment; |
180 } | 160 } |
181 | 161 |
182 public void setDescription(String description) { | 162 public void setComment(String comment) { |
183 this.description = description; | 163 this.comment = comment; |
184 } | 164 } |
185 | 165 |
186 public static List<MeasurementStation> getStationsAtKM(String river, Double river_km) | 166 public static List<MeasurementStation> getStationsAtRiver(River river) { |
187 { | |
188 Session session = SessionHolder.HOLDER.get(); | 167 Session session = SessionHolder.HOLDER.get(); |
189 | 168 |
190 Query query = session.createQuery( | 169 Query query = session.createQuery( |
191 "from MeasurementStation as ms " + | 170 "from MeasurementStation " + |
192 "where ms.river.name = :river_name and ms.station = :river_km"); | 171 "where range.river = :river"); |
193 query.setParameter("river_name", river); | 172 |
194 query.setParameter("river_km", river_km); | 173 query.setParameter("river", river); |
195 | 174 |
196 return query.list(); | 175 return query.list(); |
197 } | 176 } |
177 | |
178 public static List<MeasurementStation> getStationsAtKM( | |
179 River river, | |
180 Double river_km | |
181 ) { | |
182 Session session = SessionHolder.HOLDER.get(); | |
183 | |
184 Query query = session.createQuery( | |
185 "from MeasurementStation where range.river = :river"); | |
186 query.setParameter("river", river); | |
187 | |
188 List<MeasurementStation> result = new ArrayList<MeasurementStation>(); | |
189 for (Iterator iter = query.iterate(); iter.hasNext();) { | |
190 MeasurementStation st = (MeasurementStation)iter.next(); | |
191 Double a = st.getRange().getA().doubleValue(); | |
192 Double b = st.getRange().getB() == null | |
193 ? null | |
194 : st.getRange().getB().doubleValue(); | |
195 | |
196 // In case river is km_up, station is at larger value of range | |
197 if (river.getKmUp() && b != null && b == river_km | |
198 || !river.getKmUp() && a == river_km | |
199 || b == null && a == river_km // no end km given | |
200 ) { | |
201 result.add(st); | |
202 } | |
203 } | |
204 return result; | |
205 } | |
198 } | 206 } |