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

http://dive4elements.wald.intevation.org