Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/QualityMeasurementFactory.java @ 8587:07c9ac22f611
(issue1755) Generalise BedQuality result handling
The bedquality calculation now produces a result for each time period
which has BedQualityResultValues for each specific result type.
Formally this was split up in density, porosity and diameter classes
with some bedload diameter classes mixed in for extra fun.
The intent of this commit is to allow more shared code and generic
access patterns to the BedQuality results.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 18 Mar 2015 18:42:08 +0100 |
parents | e4606eae8ea5 |
children | 2e11fc7f5d35 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4807
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.minfo; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.Date; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.HashMap; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.Map; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
15 import org.apache.log4j.Logger; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import org.hibernate.SQLQuery; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import org.hibernate.Session; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import org.hibernate.transform.BasicTransformerAdapter; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import org.hibernate.type.StandardBasicTypes; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4807
diff
changeset
|
21 import org.dive4elements.river.backend.SedDBSessionHolder; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
23 |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 public class QualityMeasurementFactory { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7630
diff
changeset
|
26 private static Logger log = Logger.getLogger(QualityMeasurementFactory.class); |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
27 |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
28 private static final String SQL_BED_MEASUREMENT = |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
29 "SELECT st.km as km," + |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
30 " st.datum as datum," + |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
31 " sp.tiefevon as depth1," + |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
32 " sp.tiefebis as depth2," + |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
33 " sa.d10 as d10," + |
7630
3da531976039
issue1043: Fetch 'dm'-values in QualityMeasurementFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6781
diff
changeset
|
34 " sa.dm as dm," + |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
35 " sa.d16 as d16," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
36 " sa.d20 as d20," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
37 " sa.d25 as d25," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
38 " sa.d30 as d30," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
39 " sa.d40 as d40," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
40 " sa.d50 as d50," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
41 " sa.d60 as d60," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
42 " sa.d70 as d70," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
43 " sa.d75 as d75," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
44 " sa.d80 as d80," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
45 " sa.d84 as d84," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
46 " sa.d90 as d90," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
47 " sa.dmin as dmin," + |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
48 " sa.dmax as dmax " + |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
49 "FROM sohltest st " + |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
50 " JOIN station sn ON sn.stationid = st.stationid " + |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
51 " JOIN gewaesser gw ON gw.gewaesserid = sn.gewaesserid " + |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
52 " JOIN sohlprobe sp ON sp.sohltestid = st.sohltestid " + |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
53 " JOIN siebanalyse sa ON sa.sohlprobeid = sp.sohlprobeid " + |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 "WHERE gw.name = :name AND " + |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 " st.km IS NOT NULL AND " + |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
56 " sp.tiefevon IS NOT NULL AND " + |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3769
diff
changeset
|
57 " sp.tiefebis IS NOT NULL AND " + // TODO: Test if char diameter ist null. |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
58 " st.km BETWEEN :from - 0.001 AND :to + 0.001 AND " + |
6358
e1093f75a36f
Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
59 " st.datum BETWEEN :start AND :end " + |
e1093f75a36f
Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
60 "ORDER BY st.km"; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
62 private static final String SQL_BEDLOAD_MEASUREMENT = |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
63 "SELECT m.km as km," + |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
64 " m.datum as datum," + |
7630
3da531976039
issue1043: Fetch 'dm'-values in QualityMeasurementFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6781
diff
changeset
|
65 " m.dm as dm," + |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
66 " m.d10 as d10," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
67 " m.d16 as d16," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
68 " m.d20 as d20," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
69 " m.d25 as d25," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
70 " m.d30 as d30," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
71 " m.d40 as d40," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
72 " m.d50 as d50," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
73 " m.d60 as d60," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
74 " m.d70 as d70," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
75 " m.d75 as d75," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
76 " m.d80 as d80," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
77 " m.d84 as d84," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
78 " m.d90 as d90," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
79 " m.dmin as dmin," + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
80 " m.dmax as dmax " + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
81 "FROM messung m" + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
82 " JOIN station sn ON sn.stationid = m.stationid" + |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
83 " JOIN gewaesser gw ON gw.gewaesserid = sn.gewaesserid " + |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
84 "WHERE gw.name = :name AND " + |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
85 " m.km IS NOT NULL AND " + |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3769
diff
changeset
|
86 " m.d10 IS NOT NULL AND" + //TODO: Add all other char. diameter. |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
87 " m.km BETWEEN :from - 0.001 AND :to + 0.001 AND" + |
6358
e1093f75a36f
Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
88 " m.datum BETWEEN :start AND :end " + |
e1093f75a36f
Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
89 "ORDER BY m.km"; |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
90 |
6767
6a67a8f01f5b
QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6358
diff
changeset
|
91 /** Transform query result into objects, use INSTANCE singleton. */ |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 public static final class QualityMeasurementResultTransformer |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
93 extends BasicTransformerAdapter { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
94 |
6767
6a67a8f01f5b
QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6358
diff
changeset
|
95 // Make a singleton |
6a67a8f01f5b
QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6358
diff
changeset
|
96 public static QualityMeasurementResultTransformer INSTANCE = |
6a67a8f01f5b
QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6358
diff
changeset
|
97 new QualityMeasurementResultTransformer(); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 |
6767
6a67a8f01f5b
QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6358
diff
changeset
|
99 private QualityMeasurementResultTransformer() { |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
100 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 |
6781 | 102 /** tuples is a row. */ |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 @Override |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
104 public Object transformTuple(Object[] tuple, String[] aliases) { |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
105 Map<String, Double> map = new HashMap<String, Double>(); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
106 double km = 0; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 Date d = null; |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
108 double depth1 = Double.NaN; |
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
109 double depth2 = Double.NaN; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 for (int i = 0; i < tuple.length; ++i) { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
111 if (tuple[i] != null) { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
112 if (aliases[i].equals("km")) { |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
113 km = ((Number) tuple[i]).doubleValue(); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
114 } |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
115 else if (aliases[i].equals("datum")) { |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
116 d = (Date) tuple[i]; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
117 } |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
118 else if (aliases[i].equals("depth1")) { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
119 depth1 = ((Number) tuple[i]).doubleValue(); |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
120 } |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
121 else if (aliases[i].equals("depth2")) { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
122 depth2 = ((Number) tuple[i]).doubleValue(); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
123 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
124 else { |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
125 map.put(aliases[i], ((Double) tuple[i])/1000); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
126 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
127 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
128 } |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
129 return new QualityMeasurement(km, d, depth1, depth2, map); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
130 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
131 } // class BasicTransformerAdapter |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
132 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
133 private QualityMeasurementFactory() { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
134 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
135 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
136 protected static QualityMeasurements load( |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
137 Session session, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
138 String river, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
139 double from, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
140 double to, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
141 Date start, |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
142 Date end, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
143 String statement |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
144 ) { |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
145 SQLQuery query = session.createSQLQuery(statement) |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
146 .addScalar("km", StandardBasicTypes.DOUBLE) |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
147 .addScalar("datum", StandardBasicTypes.DATE) |
7630
3da531976039
issue1043: Fetch 'dm'-values in QualityMeasurementFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6781
diff
changeset
|
148 .addScalar("dm", StandardBasicTypes.DOUBLE) |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
149 .addScalar("d10", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
150 .addScalar("d16", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
151 .addScalar("d20", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
152 .addScalar("d25", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
153 .addScalar("d30", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
154 .addScalar("d40", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
155 .addScalar("d50", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
156 .addScalar("d60", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
157 .addScalar("d70", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
158 .addScalar("d75", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
159 .addScalar("d80", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
160 .addScalar("d84", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
161 .addScalar("d90", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
162 .addScalar("dmin", StandardBasicTypes.DOUBLE) |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
163 .addScalar("dmax", StandardBasicTypes.DOUBLE); |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
164 |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
165 if (statement.equals(SQL_BED_MEASUREMENT)) { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
166 query.addScalar("depth1", StandardBasicTypes.DOUBLE); |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
167 query.addScalar("depth2", StandardBasicTypes.DOUBLE); |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
168 } |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
169 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
170 query.setString("name", river); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
171 query.setDouble("from", from); |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
172 query.setDouble("to", to); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 query.setDate("start", start); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 query.setDate("end", end); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 query.setResultTransformer( |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 QualityMeasurementResultTransformer.INSTANCE); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 return new QualityMeasurements(query.list()); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 |
6781 | 182 /** Get all measurements. */ |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
183 public static QualityMeasurements getBedMeasurements( |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 String river, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 double from, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
186 double to, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
187 Date start, |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
188 Date end) { |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
189 Session session = SedDBSessionHolder.HOLDER.get(); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
190 try { |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
191 return load(session, river, from, to, start, end, |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
192 SQL_BED_MEASUREMENT); |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
193 } |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
194 finally { |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
195 //session.close(); |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
196 } |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
197 } |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
198 |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
199 public static QualityMeasurements getBedloadMeasurements( |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
200 String river, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
201 double from, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
202 double to, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
203 Date start, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
204 Date end |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3756
diff
changeset
|
205 ) { |
3756
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
206 Session session = SedDBSessionHolder.HOLDER.get(); |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
207 try { |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
208 return load( |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
209 session, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
210 river, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
211 from, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
212 to, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
213 start, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
214 end, |
912a398968b6
The factory for minfo bed quality calculation can load bedload and bed data from seddb now.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
215 SQL_BEDLOAD_MEASUREMENT); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
216 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
217 finally { |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3769
diff
changeset
|
218 //session.close(); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
219 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
220 } |
4807
dbae69a57927
QualityMesurementFactory: Added vim-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
221 } |
dbae69a57927
QualityMesurementFactory: Added vim-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3785
diff
changeset
|
222 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |