Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/StaticSQFactory.java @ 8271:f98598cf798c
Purge some duplicated logging an misleading comments.
author | "Tom Gottfried <tom@intevation.de>" |
---|---|
date | Mon, 15 Sep 2014 15:00:48 +0200 |
parents | a9bd4a23a852 |
children | 17db08570637 |
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:
5500
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.sq; |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.math.BigDecimal; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.Date; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.List; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import net.sf.ehcache.Cache; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import net.sf.ehcache.Element; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import org.apache.log4j.Logger; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import org.hibernate.Query; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 import org.hibernate.Session; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5500
diff
changeset
|
22 import org.dive4elements.river.artifacts.cache.CacheFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5500
diff
changeset
|
23 import org.dive4elements.river.backend.SessionHolder; |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 public class StaticSQFactory |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 private static final Logger log = |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 Logger.getLogger(StaticSQFactory.class); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 public static final String SQL_SQ = |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 "SELECT " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 "sq.description AS description,"+ |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 "ti.start_time AS start_time," + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 "ti.stop_time AS stop_time, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 "ms.name AS station_name, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 "ms.station AS station_km, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 "ms.measurement_type AS measurement_type, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 "sqv.parameter AS parameter, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 "sqv.a AS a, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 "sqv.b AS b, " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 "sqv.qmax AS qmax " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 "FROM sq_relation sq " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 "JOIN time_intervals ti ON ti.id = sq.time_interval_id " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 "JOIN rivers r ON r.id = sq.river_id " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 "JOIN sq_relation_value sqv ON sqv.sq_relation_id = sq.id " + |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
47 "JOIN measurement_station ms ON sqv.measurement_station_id = ms.id "; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
48 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
49 public static final String STATION_CLAUSE = |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 "WHERE " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 "r.name = :river " + |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 "AND ms.id = :ms_id "; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
54 public static final String ID_CLAUSE = |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
55 "WHERE " + |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
56 "sqv.id = :dis_id "; |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 private StaticSQFactory() { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 public static StaticSQContainer getSQRelations( |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 String river, |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 int measurementStation |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 ) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 Cache cache = CacheFactory.getCache(StaticSQCacheKey.CACHE_NAME); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 StaticSQCacheKey cacheKey; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 if (cache != null) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 cacheKey = new StaticSQCacheKey(river, measurementStation); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 Element element = cache.get(cacheKey); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 if (element != null) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 log.debug("Got static bedheight values from cache"); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 return (StaticSQContainer)element.getValue(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 else { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 cacheKey = null; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 StaticSQContainer values = getUncached(river, measurementStation); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 if (values != null && cacheKey != null) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 log.debug("Store static sq relations in cache."); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 Element element = new Element(cacheKey, values); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 cache.put(element); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 return values; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
91 public static StaticSQContainer getDistinctRelation(int id) { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
92 Session session = SessionHolder.HOLDER.get(); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
93 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
94 Query query = session.createSQLQuery(SQL_SQ + ID_CLAUSE) |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
95 .addScalar("description") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
96 .addScalar("start_time") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
97 .addScalar("stop_time") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
98 .addScalar("station_name") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
99 .addScalar("station_km") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
100 .addScalar("measurement_type") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
101 .addScalar("parameter") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
102 .addScalar("a") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
103 .addScalar("b") |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
104 .addScalar("qmax"); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
105 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
106 query.setParameter("dis_id", id); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
107 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
108 /* This could be done nicer with hibernate */ |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
109 List<Object []> list = query.list(); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
110 if (list.isEmpty()) { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
111 log.debug("Query returened nothing"); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
112 return null; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
113 } |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
114 Object [] row = list.get(0); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
115 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
116 StaticSQContainer sq = new StaticSQContainer(); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
117 sq.setDescription((String)list.get(0)[0]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
118 sq.setStationName((String)list.get(0)[3]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
119 sq.setKm(((BigDecimal)list.get(0)[4]).doubleValue()); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
120 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
121 StaticSQRelation relation = new StaticSQRelation(); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
122 relation.setStartTime((Date)row[1]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
123 relation.setStopTime((Date)row[2]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
124 relation.setType((String)row[5]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
125 relation.setParameter((String)row[6]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
126 relation.setA(((BigDecimal)row[7]).doubleValue()); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
127 relation.setB(((BigDecimal)row[8]).doubleValue()); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
128 relation.setQmax(((BigDecimal)row[9]).doubleValue()); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
129 sq.addSQRelation(relation); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
130 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
131 return sq; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
132 } |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
133 |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 private static StaticSQContainer getUncached( |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 String river, |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 int measurementStation |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 ) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 Session session = SessionHolder.HOLDER.get(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
140 Query query = session.createSQLQuery(SQL_SQ + STATION_CLAUSE) |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 .addScalar("description") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 .addScalar("start_time") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 .addScalar("stop_time") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 .addScalar("station_name") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 .addScalar("station_km") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 .addScalar("measurement_type") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 .addScalar("parameter") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 .addScalar("a") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 .addScalar("b") |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 .addScalar("qmax"); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 query.setParameter("river", river); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 query.setParameter("ms_id", measurementStation); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 List<Object []> list = query.list(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 if (list.isEmpty()) { |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
158 log.debug("Query returened empty"); |
5500
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 return new StaticSQContainer(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 StaticSQContainer sq = new StaticSQContainer(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 sq.setDescription((String)list.get(0)[0]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 sq.setStationName((String)list.get(0)[3]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 sq.setKm(((BigDecimal)list.get(0)[4]).doubleValue()); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 for (Object[] row : list) { |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 StaticSQRelation relation = new StaticSQRelation(); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 relation.setStartTime((Date)row[1]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 relation.setStopTime((Date)row[2]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 relation.setType((String)row[5]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 relation.setParameter((String)row[6]); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 relation.setA(((BigDecimal)row[7]).doubleValue()); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 relation.setB(((BigDecimal)row[8]).doubleValue()); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 relation.setQmax(((BigDecimal)row[9]).doubleValue()); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 sq.addSQRelation(relation); |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 return sq; |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 } |
700ac898ab0b
Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 } |