Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/QualityMeasurementFactory.java @ 3756:912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
flys-artifacts/trunk@5451 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 13 Sep 2012 10:49:49 +0000 |
parents | 9c555ce5ca50 |
children | 75bc96dd9d82 |
comparison
equal
deleted
inserted
replaced
3755:9c555ce5ca50 | 3756:912a398968b6 |
---|---|
11 | 11 |
12 import de.intevation.flys.backend.SedDBSessionHolder; | 12 import de.intevation.flys.backend.SedDBSessionHolder; |
13 | 13 |
14 public class QualityMeasurementFactory { | 14 public class QualityMeasurementFactory { |
15 | 15 |
16 private static final String SQL_MEASUREMENT = | 16 private static final String SQL_BED_MEASUREMENT = |
17 "SELECT st.km as km," + | 17 "SELECT st.km as km," + |
18 " st.datum as date,"+ | 18 " st.datum as date,"+ |
19 " sa.d10 as d10," + | 19 " sa.d10 as d10," + |
20 " sa.d16 as d16," + | 20 " sa.d16 as d16," + |
21 " sa.d20 as d20," + | 21 " sa.d20 as d20," + |
38 " JOIN siebanalyse sa ON sa.sohlprobeid = sp.sohlprobeid" + | 38 " JOIN siebanalyse sa ON sa.sohlprobeid = sp.sohlprobeid" + |
39 "WHERE gw.name = :name AND " + | 39 "WHERE gw.name = :name AND " + |
40 " st.km IS NOT NULL AND " + | 40 " st.km IS NOT NULL AND " + |
41 " st.km BETWEEN :from - 0.001 AND :to + 0.001 AND" + | 41 " st.km BETWEEN :from - 0.001 AND :to + 0.001 AND" + |
42 " st.datum BETWEEN :start AND :end"; | 42 " st.datum BETWEEN :start AND :end"; |
43 | |
44 private static final String SQL_BEDLOAD_MEASUREMENT = | |
45 "SELECT m.km as km," + | |
46 " m.datum as date,"+ | |
47 " m.d10 as d10," + | |
48 " m.d16 as d16," + | |
49 " m.d20 as d20," + | |
50 " m.d25 as d25," + | |
51 " m.d30 as d30," + | |
52 " m.d40 as d40," + | |
53 " m.d50 as d50," + | |
54 " m.d60 as d60," + | |
55 " m.d70 as d70," + | |
56 " m.d75 as d75," + | |
57 " m.d80 as d80," + | |
58 " m.d84 as d84," + | |
59 " m.d90 as d90," + | |
60 " m.dmin as dmin," + | |
61 " m.dmax as dmax " + | |
62 "FROM messung m" + | |
63 " JOIN station sn ON sn.stationid = m.stationid" + | |
64 " JOIN gewaesser gw ON gw.gewaesserid = sn.gewaesserid" + | |
65 "WHERE gw.name = :name AND " + | |
66 " m.km IS NOT NULL AND " + | |
67 " m.km BETWEEN :from - 0.001 AND :to + 0.001 AND" + | |
68 " m.datum BETWEEN :start AND :end"; | |
43 | 69 |
44 public static final class QualityMeasurementResultTransformer | 70 public static final class QualityMeasurementResultTransformer |
45 extends BasicTransformerAdapter | 71 extends BasicTransformerAdapter |
46 { | 72 { |
47 public static QualityMeasurementResultTransformer INSTANCE = | 73 public static QualityMeasurementResultTransformer INSTANCE = |
79 Session session, | 105 Session session, |
80 String river, | 106 String river, |
81 double from, | 107 double from, |
82 double to, | 108 double to, |
83 Date start, | 109 Date start, |
84 Date end | 110 Date end, |
111 String statement | |
85 ) { | 112 ) { |
86 SQLQuery query = session.createSQLQuery(SQL_MEASUREMENT) | 113 SQLQuery query = session.createSQLQuery(statement) |
87 .addScalar("km", StandardBasicTypes.DOUBLE) | 114 .addScalar("km", StandardBasicTypes.DOUBLE) |
88 .addScalar("date", StandardBasicTypes.DATE) | 115 .addScalar("date", StandardBasicTypes.DATE) |
89 .addScalar("d10", StandardBasicTypes.DOUBLE) | 116 .addScalar("d10", StandardBasicTypes.DOUBLE) |
90 .addScalar("d16", StandardBasicTypes.DOUBLE) | 117 .addScalar("d16", StandardBasicTypes.DOUBLE) |
91 .addScalar("d20", StandardBasicTypes.DOUBLE) | 118 .addScalar("d20", StandardBasicTypes.DOUBLE) |
112 QualityMeasurementResultTransformer.INSTANCE); | 139 QualityMeasurementResultTransformer.INSTANCE); |
113 | 140 |
114 return new QualityMeasurements(query.list()); | 141 return new QualityMeasurements(query.list()); |
115 } | 142 } |
116 | 143 |
117 public static QualityMeasurements getMeasurements( | 144 public static QualityMeasurements getBedMeasurements( |
118 String river, | 145 String river, |
119 double from, | 146 double from, |
120 double to, | 147 double to, |
121 Date start, | 148 Date start, |
122 Date end | 149 Date end |
123 ) { | 150 ) { |
124 Session session = SedDBSessionHolder.HOLDER.get(); | 151 Session session = SedDBSessionHolder.HOLDER.get(); |
125 try { | 152 try { |
126 return load(session, river, from, to, start, end); | 153 return load( |
154 session, | |
155 river, | |
156 from, | |
157 to, | |
158 start, | |
159 end, | |
160 SQL_BED_MEASUREMENT); | |
161 } | |
162 finally { | |
163 session.close(); | |
164 } | |
165 } | |
166 | |
167 public static QualityMeasurements getBedloadMeasurements( | |
168 String river, | |
169 double from, | |
170 double to, | |
171 Date start, | |
172 Date end | |
173 ){ | |
174 Session session = SedDBSessionHolder.HOLDER.get(); | |
175 try { | |
176 return load( | |
177 session, | |
178 river, | |
179 from, | |
180 to, | |
181 start, | |
182 end, | |
183 SQL_BEDLOAD_MEASUREMENT); | |
127 } | 184 } |
128 finally { | 185 finally { |
129 session.close(); | 186 session.close(); |
130 } | 187 } |
131 } | 188 } |