Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/FlowVelocityMeasurementFactory.java @ 7357:9d3e44ab25f2
Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Idea is that Artifact and Access are lightweight. Access access the 'data'
('parameterization') attached to artifact, not the data delivered by means of
artifact and its parameterization.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 16 Oct 2013 10:42:45 +0200 |
parents | 735346b3e438 |
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:
4471
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.minfo; |
4463
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
6944
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
11 import java.util.Date; |
4463
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 import org.hibernate.SQLQuery; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 import org.hibernate.Session; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 |
6944
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
18 import org.hibernate.type.StandardBasicTypes; |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
19 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4471
diff
changeset
|
20 import org.dive4elements.river.model.FlowVelocityMeasurementValue; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4471
diff
changeset
|
21 import org.dive4elements.river.backend.SessionHolder; |
4463
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 public class FlowVelocityMeasurementFactory |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 { |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
26 /** Private logger to use here. */ |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
27 private static Logger log = Logger.getLogger(FlowVelocityMeasurementFactory.class); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
28 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
29 /** Query to get description and start year, given name and a km range. */ |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
30 public static final String SQL_SELECT_ONE = |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 "SELECT station, datetime, w, q, v, description " + |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
32 " FROM flow_velocity_measure_values" + |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 " WHERE id = :id"; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 private FlowVelocityMeasurementFactory() { |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 } |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
38 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
39 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 public static FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 getFlowVelocityMeasurement(int id) |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 { |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 log.debug("FlowVelocityMeasurementFactory.getFlowVelocityMeasurementValue"); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
44 Session session = SessionHolder.HOLDER.get(); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 SQLQuery sqlQuery = null; |
6944
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
46 sqlQuery = session.createSQLQuery(SQL_SELECT_ONE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
47 .addScalar("station", StandardBasicTypes.DOUBLE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
48 .addScalar("datetime", StandardBasicTypes.DATE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
49 .addScalar("w", StandardBasicTypes.DOUBLE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
50 .addScalar("q", StandardBasicTypes.DOUBLE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
51 .addScalar("v", StandardBasicTypes.DOUBLE) |
602dac32a996
issue957: Better name for flowvelocity measured values facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
52 .addScalar("description", StandardBasicTypes.STRING); |
4463
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 sqlQuery.setParameter("id", id); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 List<Object []> results = sqlQuery.list(); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
56 if (results.size() > 0) { |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 Object[] row = results.get(0); |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 if (row == null || row.length < 6) { |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 return null; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 } |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 return FlowVelocityMeasurementValue.getUnmapped( |
6945
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
62 (Double) row[0], |
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
63 (Double) row[2], |
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
64 (Double) row[3], |
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
65 (Double) row[4], |
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
66 (Date) row[1], |
735346b3e438
Let hibernate do the parsing/casting.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6944
diff
changeset
|
67 (String) row[5]); |
4463
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 } |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
69 return null; |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
70 } |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
71 } |
3395f8c6b030
FlowVelocityMeasurementFactory: New, do the query to fetch measured flow velocities.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
72 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |