Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedHeightFactory.java @ 3886:633fbb61a0cc
Split bed heights into bed height epochs and single bed heights.
flys-artifacts/trunk@5536 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 20 Sep 2012 09:31:18 +0000 |
parents | 68beaa827751 |
children | bce2dd4310a6 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedHeightFactory.java Thu Sep 20 09:26:17 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedHeightFactory.java Thu Sep 20 09:31:18 2012 +0000 @@ -1,6 +1,7 @@ package de.intevation.flys.artifacts.model.minfo; +import java.util.Date; import java.util.List; import net.sf.ehcache.Cache; @@ -21,13 +22,16 @@ /** Query to get km and ws for wst_id and column_pos. */ public static final String SQL_SELECT_SINGLE = - "SELECT height, station, data_gap FROM bed_height_single_values " + - "WHERE id = :height_id"; + "SELECT height, station, data_gap, sounding_width, year " + + " FROM bed_height_single_values " + + " WHERE id = :height_id"; /** Query to get name for wst_id and column_pos. */ public static final String SQL_SELECT_EPOCH = - "SELECT height, station FROM bed_height_epoch_values "+ - "WHERE id = :height_id"; + "SELECT b.height, b.station, ti.start_time, ti.stop_time" + + " FROM bed_height_epoch_values b" + + " JOIN time_interval ti ON b.time_interval_id = ti.id" + + " WHERE id = :height_id"; /** Query to get name (description) for wst_id. */ public static final String SQL_SELECT_DESCR_SINGLE = @@ -120,37 +124,55 @@ log.debug("BedHeightFactory.getBedHeightUncached"); } - BedHeight height = new BedHeight(getHeightName(type, height_id)); - Session session = SessionHolder.HOLDER.get(); SQLQuery sqlQuery = null; if (type.equals("single")) { + BedHeightSingle height = + new BedHeightSingle(getHeightName(type, height_id)); sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLE) .addScalar("height", StandardBasicTypes.DOUBLE) .addScalar("station", StandardBasicTypes.DOUBLE) - .addScalar("data_gap", StandardBasicTypes.DOUBLE); + .addScalar("data_gap", StandardBasicTypes.DOUBLE) + .addScalar("sounding_width", StandardBasicTypes.DOUBLE) + .addScalar("year", StandardBasicTypes.INTEGER); sqlQuery.setInteger("height_id", height_id); List<Object []> results = sqlQuery.list(); for (int i = 0; i <= results.size(); i++) { Object[] row = results.get(i); - height.add((Double) row[0], (Double) row[1], (Double) row[2]); + height.add( + (Double) row[0], + (Double) row[1], + (Double) row[2], + (Double) row[3], + (Integer) row[4]); } + return height; } else if (type.equals("epoch")) { + BedHeightEpoch height = + new BedHeightEpoch(getHeightName(type, height_id)); sqlQuery = session.createSQLQuery(SQL_SELECT_EPOCH) .addScalar("height", StandardBasicTypes.DOUBLE) - .addScalar("station", StandardBasicTypes.DOUBLE); + .addScalar("station", StandardBasicTypes.DOUBLE) + .addScalar("start_time", StandardBasicTypes.DATE) + .addScalar("stop_time", StandardBasicTypes.DATE); sqlQuery.setInteger("height_id", height_id); List<Object []> results = sqlQuery.list(); for (int i = 0; i <= results.size(); i++) { Object[] row = results.get(i); - height.add((Double) row[0], (Double) row[1], 0); + height.add( + (Double) row[0], + (Double) row[1], + 0, + 0, + (Date) row[2], + (Date)row[3]); } + return height; } - - return height; + return new BedHeight(); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :