Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFactory.java @ 7305:2e4ffd35cafa
issue1345: Prepare SedimentLoadFactory to deliver fraction name and time ranges.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 14 Oct 2013 09:52:17 +0200 |
parents | 615795d54831 |
children | 7f438ee10be6 |
comparison
equal
deleted
inserted
replaced
7304:615795d54831 | 7305:2e4ffd35cafa |
---|---|
51 " JOIN sediment_yield_values syv ON sy.id = syv.sediment_yield_id " + | 51 " JOIN sediment_yield_values syv ON sy.id = syv.sediment_yield_id " + |
52 " JOIN time_intervals ti ON sy.time_interval_id = ti.id " + | 52 " JOIN time_intervals ti ON sy.time_interval_id = ti.id " + |
53 " WHERE r.name = :name " + | 53 " WHERE r.name = :name " + |
54 " AND ti.stop_time IS NULL " + | 54 " AND ti.stop_time IS NULL " + |
55 " AND syv.station BETWEEN :startKm AND :endKm"; | 55 " AND syv.station BETWEEN :startKm AND :endKm"; |
56 | |
57 /** Query to get fraction name of single sediment_yield. */ | |
58 public static final String SQL_SELECT_SINGLE_TIMES_BY_ID = | |
59 "SELECT DISTINCT " + | |
60 " ti.start_time AS starttime, " + | |
61 " ti.stop_time AS stoptime " + | |
62 " FROM sediment_yield sy " + | |
63 " JOIN time_intervals ti ON ti.id = sy.time_interval_id " + | |
64 " WHERE sy.id = :id "; | |
65 | |
66 /** Query to get fraction name of single sediment_yield. */ | |
67 public static final String SQL_SELECT_SINGLE_FRACTION_BY_ID = | |
68 "SELECT DISTINCT " + | |
69 " gf.name AS fraction " + | |
70 " FROM sediment_yield sy " + | |
71 " JOIN grain_fraction gf ON gf.id = grain_fraction_id " + | |
72 " WHERE sy.id = :id "; | |
56 | 73 |
57 /** Query to get description of single sediment_yield. */ | 74 /** Query to get description of single sediment_yield. */ |
58 public static final String SQL_SELECT_SINGLE_BY_ID = | 75 public static final String SQL_SELECT_SINGLE_BY_ID = |
59 "SELECT DISTINCT " + | 76 "SELECT DISTINCT " + |
60 " sy.description AS description " + | 77 " sy.description AS description " + |
274 element = new Element(key, values); | 291 element = new Element(key, values); |
275 cache.put(element); | 292 cache.put(element); |
276 } | 293 } |
277 return values; | 294 return values; |
278 } | 295 } |
296 | |
297 /** | |
298 * Get sediment yields time definition. | |
299 * @param id the sediment yield by id. | |
300 * @return sediment yields fraction name. | |
301 */ | |
302 public static Date[] getSedimentYieldTimes(int id) { | |
303 log.debug("SedimentLoadFactory.getSedimentYieldTimes"); | |
304 | |
305 Session session = SessionHolder.HOLDER.get(); | |
306 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLE_TIMES_BY_ID) | |
307 .addScalar("starttime", StandardBasicTypes.DATE) | |
308 .addScalar("stoptime", StandardBasicTypes.DATE); | |
309 sqlQuery.setDouble("id", id); | |
310 | |
311 List<Object[]> results = sqlQuery.list(); | |
312 Object[] row = results.get(0); | |
313 | |
314 return new Date[] {(Date)row[0], (Date) row[1]}; | |
315 } | |
316 | |
317 /** | |
318 * Get sediment load fraction name. | |
319 * @param id the sediment yield by id. | |
320 * @return sediment yields fraction name. | |
321 */ | |
322 public static String getSedimentYieldFractionName(int id) { | |
323 log.debug("SedimentLoadFactory.getSedimentYieldFractionName"); | |
324 | |
325 Session session = SessionHolder.HOLDER.get(); | |
326 SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLE_FRACTION_BY_ID) | |
327 .addScalar("fraction", StandardBasicTypes.STRING); | |
328 sqlQuery.setDouble("id", id); | |
329 | |
330 List<Object> results = sqlQuery.list(); | |
331 | |
332 return (String) results.get(0); | |
333 } | |
334 | |
279 | 335 |
280 /** | 336 /** |
281 * Get sediment load description. | 337 * Get sediment load description. |
282 * @param id the sediment yield by id. | 338 * @param id the sediment yield by id. |
283 * @return sediment yields description | 339 * @return sediment yields description |