comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java @ 3290:36f3b53d5cfc

SQ relation: Added infrastructure to extract fractions from measurments. flys-artifacts/trunk@4958 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 12 Jul 2012 17:34:40 +0000
parents ec9aab93f292
children b52c4b34ec1b
comparison
equal deleted inserted replaced
3289:ec9aab93f292 3290:36f3b53d5cfc
3 import de.intevation.flys.artifacts.model.DateRange; 3 import de.intevation.flys.artifacts.model.DateRange;
4 4
5 import de.intevation.flys.backend.SedDBSessionHolder; 5 import de.intevation.flys.backend.SedDBSessionHolder;
6 6
7 import java.util.HashMap; 7 import java.util.HashMap;
8 import java.util.List;
9 import java.util.Map; 8 import java.util.Map;
10 9
11 import org.apache.log4j.Logger; 10 import org.apache.log4j.Logger;
12 11
13 import org.hibernate.SQLQuery; 12 import org.hibernate.SQLQuery;
25 public static final String SQL_MEASSURE = 24 public static final String SQL_MEASSURE =
26 "SELECT " + 25 "SELECT " +
27 "m.TSAND AS TSAND," + 26 "m.TSAND AS TSAND," +
28 "m.TSCHWEB AS TSCHWEB," + 27 "m.TSCHWEB AS TSCHWEB," +
29 "m.CSCHWEB AS CSCHWEB " + 28 "m.CSCHWEB AS CSCHWEB " +
29 "m.Q AS Q " +
30 /* TODO: Select more */ 30 /* TODO: Select more */
31 "FROM messung m " + 31 "FROM messung m " +
32 "JOIN station s ON m.stationid = s.stationid " + 32 "JOIN station s ON m.stationid = s.stationid " +
33 "JOIN gewaesser g ON s.gewaesserid = g.gewaesserid " + 33 "JOIN gewaesser g ON s.gewaesserid = g.gewaesserid " +
34 "WHERE " + 34 "WHERE " +
35 "g.name = :river_name AND " + 35 "g.name = :river_name AND " +
36 "s.km BETWEEN :location - 0.001 AND :location + 0.001 AND " + 36 "s.km BETWEEN :location - 0.001 AND :location + 0.001 AND " +
37 "m.datum BETWEEN :from AND :to"; 37 "m.datum BETWEEN :from AND :to AND " +
38 "m.Q IS NOT NULL";
38 39
39 public static final class MeasurementResultTransformer 40 public static final class MeasurementResultTransformer
40 extends BasicTransformerAdapter 41 extends BasicTransformerAdapter
41 { 42 {
42 public static MeasurementResultTransformer INSTANCE = 43 public static MeasurementResultTransformer INSTANCE =
56 } // class BasicTransformerAdapter 57 } // class BasicTransformerAdapter
57 58
58 private MeasurementFactory() { 59 private MeasurementFactory() {
59 } 60 }
60 61
61 protected static List<Measurement> load( 62 protected static Measurements load(
62 Session session, 63 Session session,
63 String river, 64 String river,
64 double location, 65 double location,
65 DateRange dateRange 66 DateRange dateRange
66 ) { 67 ) {
67 SQLQuery query = session.createSQLQuery(SQL_MEASSURE) 68 SQLQuery query = session.createSQLQuery(SQL_MEASSURE)
68 .addScalar("TSAND", StandardBasicTypes.DOUBLE) 69 .addScalar("TSAND", StandardBasicTypes.DOUBLE)
69 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) 70 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE)
70 .addScalar("CSCHWEB", StandardBasicTypes.DOUBLE); 71 .addScalar("CSCHWEB", StandardBasicTypes.DOUBLE)
72 .addScalar("Q", StandardBasicTypes.DOUBLE);
71 73
72 query.setString("river_name", river); 74 query.setString("river_name", river);
73 query.setDouble("location", location); 75 query.setDouble("location", location);
74 query.setDate("from", dateRange.getFrom()); 76 query.setDate("from", dateRange.getFrom());
75 query.setDate("to", dateRange.getTo()); 77 query.setDate("to", dateRange.getTo());
76 78
77 query.setResultTransformer(MeasurementResultTransformer.INSTANCE); 79 query.setResultTransformer(MeasurementResultTransformer.INSTANCE);
78 80
79 return query.list(); 81 return new Measurements(query.list());
80 } 82 }
81 83
82 public static List<Measurement> getMeasurements( 84 public static Measurements getMeasurements(
83 String river, 85 String river,
84 double location, 86 double location,
85 DateRange dateRange 87 DateRange dateRange
86 ) { 88 ) {
87 Session session = SedDBSessionHolder.HOLDER.get(); 89 Session session = SedDBSessionHolder.HOLDER.get();

http://dive4elements.wald.intevation.org