Mercurial > dive4elements > river
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(); |