Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImporterSession.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 | 3bb1c62ad732 |
children | 67e53dbe05d2 |
comparison
equal
deleted
inserted
replaced
8411:b8c6cb36607e | 8412:17db08570637 |
---|---|
204 map.put(key, range); | 204 map.put(key, range); |
205 | 205 |
206 return range; | 206 return range; |
207 } | 207 } |
208 | 208 |
209 public List<MeasurementStation> getMeasurementStations(String river, double station) { | 209 public List<MeasurementStation> getMeasurementStations( |
210 River river, | |
211 double station | |
212 ) { | |
213 String rivername = river.getName(); | |
214 | |
210 if (riversToMeasurementStations == null) { | 215 if (riversToMeasurementStations == null) { |
211 riversToMeasurementStations = | 216 riversToMeasurementStations = |
212 new HashMap<String, Map<Double, List<MeasurementStation>>>(); | 217 new HashMap<String, Map<Double, List<MeasurementStation>>>(); |
213 } | 218 } |
214 | 219 |
215 Map<Double, List<MeasurementStation>> km2Stations = | 220 Map<Double, List<MeasurementStation>> km2Stations = |
216 riversToMeasurementStations.get(river); | 221 riversToMeasurementStations.get(rivername); |
217 if (km2Stations == null) { | 222 if (km2Stations == null) { |
218 km2Stations = | 223 km2Stations = |
219 new TreeMap<Double, List<MeasurementStation>>(EpsilonComparator.CMP); | 224 new TreeMap<Double, List<MeasurementStation>>(EpsilonComparator.CMP); |
220 riversToMeasurementStations.put(river, km2Stations); | 225 riversToMeasurementStations.put(rivername, km2Stations); |
221 Query query = databaseSession.createQuery( | 226 Query query = databaseSession.createQuery( |
222 "from MeasurementStation where river.name = :name"); | 227 "from MeasurementStation where range.river = :river"); |
223 query.setParameter("name", river); | 228 query.setParameter("river", river); |
224 for (Iterator iter = query.iterate(); iter.hasNext();) { | 229 for (Iterator iter = query.iterate(); iter.hasNext();) { |
225 MeasurementStation st = (MeasurementStation)iter.next(); | 230 MeasurementStation st = (MeasurementStation)iter.next(); |
226 List<MeasurementStation> ms = km2Stations.get(st.getStation()); | 231 |
232 // In case river is km_up, station is at larger value of range | |
233 double stKm = river.getKmUp() && st.getRange().getB() != null | |
234 ? st.getRange().getB().doubleValue() | |
235 : st.getRange().getA().doubleValue(); | |
236 | |
237 List<MeasurementStation> ms = km2Stations.get(stKm); | |
227 if (ms == null) { | 238 if (ms == null) { |
228 ms = new ArrayList<MeasurementStation>(2); | 239 ms = new ArrayList<MeasurementStation>(2); |
229 km2Stations.put(st.getStation(), ms); | 240 km2Stations.put(stKm, ms); |
230 } | 241 } |
231 ms.add(st); | 242 ms.add(st); |
232 } | 243 } |
233 | 244 |
234 } | 245 } |