annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/QualityMeasurementFactory.java @ 6781:dbaa31354b58

Doc.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 08 Aug 2013 12:08:18 +0200
parents 6a67a8f01f5b
children 3da531976039
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," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
34 " sa.d16 as d16," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
35 " sa.d20 as d20," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
36 " sa.d25 as d25," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
37 " sa.d30 as d30," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
38 " sa.d40 as d40," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
39 " sa.d50 as d50," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
40 " sa.d60 as d60," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
41 " sa.d70 as d70," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
42 " sa.d75 as d75," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
43 " sa.d80 as d80," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
44 " sa.d84 as d84," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
45 " sa.d90 as d90," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
46 " sa.dmin as dmin," +
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
47 " sa.dmax as dmax " +
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
48 "FROM sohltest st " +
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
49 " 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
50 " 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
51 " 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
52 " 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
53 "WHERE gw.name = :name AND " +
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 " 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
55 " 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
56 " 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
57 " 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
58 " st.datum BETWEEN :start AND :end " +
e1093f75a36f Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
59 "ORDER BY st.km";
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
61 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
62 "SELECT m.km as km," +
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
63 " m.datum as datum," +
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
64 " 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
65 " 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
66 " 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
67 " 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
68 " 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
69 " 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
70 " 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
71 " 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
72 " 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
73 " 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
74 " 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
75 " 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
76 " 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
77 " 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
78 " 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
79 "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
80 " 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
81 " 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
82 "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
83 " 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
84 " 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
85 " 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
86 " m.datum BETWEEN :start AND :end " +
e1093f75a36f Order bed quality data by km.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
87 "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
88
6767
6a67a8f01f5b QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6358
diff changeset
89 /** 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
90 public static final class QualityMeasurementResultTransformer
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
91 extends BasicTransformerAdapter {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
92
6767
6a67a8f01f5b QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6358
diff changeset
93 // Make a singleton
6a67a8f01f5b QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6358
diff changeset
94 public static QualityMeasurementResultTransformer INSTANCE =
6a67a8f01f5b QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6358
diff changeset
95 new QualityMeasurementResultTransformer();
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96
6767
6a67a8f01f5b QualityMeasurementFactory: Doc about singleton usage.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6358
diff changeset
97 private QualityMeasurementResultTransformer() {
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99
6781
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6767
diff changeset
100 /** tuples is a row. */
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 @Override
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
102 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
103 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
104 double km = 0;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 Date d = null;
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
106 double depth1 = Double.NaN;
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
107 double depth2 = Double.NaN;
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 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
109 if (tuple[i] != null) {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 if (aliases[i].equals("km")) {
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
111 km = ((Number) tuple[i]).doubleValue();
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 }
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
113 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
114 d = (Date) tuple[i];
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
115 }
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
116 else if (aliases[i].equals("depth1")) {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
117 depth1 = ((Number) tuple[i]).doubleValue();
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
118 }
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
119 else if (aliases[i].equals("depth2")) {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
120 depth2 = ((Number) tuple[i]).doubleValue();
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 else {
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
123 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
124 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 }
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
127 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
128 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 } // class BasicTransformerAdapter
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 private QualityMeasurementFactory() {
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
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 protected static QualityMeasurements load(
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 Session session,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 String river,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 double from,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 double to,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 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
140 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
141 String statement
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 ) {
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
143 SQLQuery query = session.createSQLQuery(statement)
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
144 .addScalar("km", StandardBasicTypes.DOUBLE)
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
145 .addScalar("datum", StandardBasicTypes.DATE)
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
146 .addScalar("d10", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
147 .addScalar("d16", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
148 .addScalar("d20", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
149 .addScalar("d25", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
150 .addScalar("d30", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
151 .addScalar("d40", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
152 .addScalar("d50", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
153 .addScalar("d60", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
154 .addScalar("d70", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
155 .addScalar("d75", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
156 .addScalar("d80", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
157 .addScalar("d84", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
158 .addScalar("d90", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
159 .addScalar("dmin", StandardBasicTypes.DOUBLE)
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
160 .addScalar("dmax", StandardBasicTypes.DOUBLE);
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
161
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
162 if (statement.equals(SQL_BED_MEASUREMENT)) {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
163 query.addScalar("depth1", StandardBasicTypes.DOUBLE);
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
164 query.addScalar("depth2", StandardBasicTypes.DOUBLE);
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
165 }
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 query.setString("name", river);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 query.setDouble("from", from);
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
169 query.setDouble("to", to);
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 query.setDate("start", start);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 query.setDate("end", end);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 query.setResultTransformer(
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 QualityMeasurementResultTransformer.INSTANCE);
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 return new QualityMeasurements(query.list());
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178
6781
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6767
diff changeset
179 /** 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
180 public static QualityMeasurements getBedMeasurements(
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 String river,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 double from,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 double to,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 Date start,
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
185 Date end) {
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 Session session = SedDBSessionHolder.HOLDER.get();
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 try {
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
188 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
189 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
190 }
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
191 finally {
3769
728ecd2afa20 Implemented bed quality calculation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3758
diff changeset
192 //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
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 }
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
195
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 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
197 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
198 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
199 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
200 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
201 Date end
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3756
diff changeset
202 ) {
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
203 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
204 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
205 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
206 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
207 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
208 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
209 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
210 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
211 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
212 SQL_BEDLOAD_MEASUREMENT);
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 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
215 //session.close();
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 }
4807
dbae69a57927 QualityMesurementFactory: Added vim-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
218 }
dbae69a57927 QualityMesurementFactory: Added vim-line.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3785
diff changeset
219 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org