Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/QualityMeasurementFactory.java @ 8194:59e50aa0c6c2
Removed obsolete imports.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 04 Sep 2014 17:47:32 +0200 |
parents | 3da531976039 |
children | e4606eae8ea5 |
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 |
3769
728ecd2afa20
Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3758
diff
changeset
|
26 private static Logger logger = Logger.getLogger(QualityMeasurementFactory.class); |
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 : |