annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/StaticSQFactory.java @ 8604:958342db7a15

(issue1750) Check for stations according to measurement station range logic
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 20 Mar 2015 17:31:06 +0100
parents c6723e5b6857
children b0e5a2ce0b09
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
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
31 public static final String SQL_STATIONS_AT_RANGE =
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
32 "SELECT "+
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
33 "ms.id AS ms_id " +
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
34 "FROM measurement_station ms " +
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
35 "JOIN ranges ra ON ra.id = ms.range_id " +
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
36 "JOIN rivers r ON r.id = ra.river_id " +
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
37 "WHERE r.name = :river AND " +
8604
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
38 "CASE WHEN r.km_up = 1 AND ra.b IS NOT NULL " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
39 "THEN ra.b " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
40 "ELSE ra.a " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
41 "END = (SELECT " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
42 "CASE WHEN r.km_up = 1 AND ra.b IS NOT NULL " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
43 "THEN ra.b " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
44 "ELSE ra.a " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
45 "END " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
46 "FROM measurement_station ms " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
47 "JOIN ranges ra ON ra.id = ms.range_id " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
48 "JOIN rivers r ON r.id = ra.river_id " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
49 "WHERE r.name = :river AND " +
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
50 "ms.id = :ms_id)";
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
51
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 public static final String SQL_SQ =
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 "SELECT " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 "sq.description AS description,"+
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 "ti.start_time AS start_time," +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 "ti.stop_time AS stop_time, " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 "ms.name AS station_name, " +
8412
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
58 "CASE WHEN r.km_up = 1 AND ra.b IS NOT NULL " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
59 "THEN ra.b " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
60 "ELSE ra.a " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
61 "END AS station_km, " +
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 "ms.measurement_type AS measurement_type, " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 "sqv.parameter AS parameter, " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 "sqv.a AS a, " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 "sqv.b AS b, " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 "sqv.qmax AS qmax " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 "FROM sq_relation sq " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 "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
69 "JOIN sq_relation_value sqv ON sqv.sq_relation_id = sq.id " +
8412
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
70 "JOIN measurement_station ms " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
71 "ON sqv.measurement_station_id = ms.id " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
72 "JOIN ranges ra ON ra.id = ms.range_id " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 7236
diff changeset
73 "JOIN rivers r ON r.id = ra.river_id ";
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
74
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
75 public static final String STATION_CLAUSE =
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 "WHERE " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 "r.name = :river " +
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 "AND ms.id = :ms_id ";
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
80 public static final String ID_CLAUSE =
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
81 "WHERE " +
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
82 "sqv.id = :dis_id ";
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 private StaticSQFactory() {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
87 /** Get SQ relations for a measurement station's location.
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
88 * Returns all SQRelations for the location of the station and
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
89 * not just for the station. E.g. for a "Geschiebemessstelle"
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
90 * and a "Schwebstoffmesstelle" at the same place.*/
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
91 public static StaticSQContainer getSQRelationsForLocation(
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
92 String river,
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
93 int measurementStation
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
94 ) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
95 Session session = SessionHolder.HOLDER.get();
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
96 Query query = session.createSQLQuery(SQL_STATIONS_AT_RANGE)
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
97 .setParameter("river", river)
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
98 .setParameter("ms_id", measurementStation);
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
99 /* Take the first container for the station requested. */
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
100 StaticSQContainer retval = getSQRelations(river, measurementStation);
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
101
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
102 /* And some others */
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
103 List<Integer> list = query.list();
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
104 if (list == null || list.isEmpty()) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
105 log.error("Did not even find one measurement station. Broken Query?");
8604
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
106 log.debug("River: " + river);
958342db7a15 (issue1750) Check for stations according to measurement station range logic
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8545
diff changeset
107 log.debug("Mesurement station id: " + measurementStation);
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
108 return retval;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
109 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
110
8545
c6723e5b6857 (issue1750) It is an error if there are more then two stations at the same range.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8543
diff changeset
111 if (list.size() > 2) {
c6723e5b6857 (issue1750) It is an error if there are more then two stations at the same range.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8543
diff changeset
112 log.error("More then two measurement stations found at the same range. Bad Data!");
c6723e5b6857 (issue1750) It is an error if there are more then two stations at the same range.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8543
diff changeset
113 return retval;
c6723e5b6857 (issue1750) It is an error if there are more then two stations at the same range.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8543
diff changeset
114 }
c6723e5b6857 (issue1750) It is an error if there are more then two stations at the same range.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8543
diff changeset
115
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
116 for (Integer stationId: list) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
117 log.debug("Collecting SQ Relations for: "+ stationId);
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
118 if (stationId == measurementStation) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
119 /* Skip the same station */
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
120 continue;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
121 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
122
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
123 StaticSQContainer additional = getSQRelations(river, stationId);
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
124 if (additional == null || additional.getSQRelations() == null) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
125 continue;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
126 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
127
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
128 if (retval == null || retval.getSQRelations() == null || retval.getSQRelations().isEmpty()) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
129 /* Old one is empty, just take the new one. */
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
130 retval = additional;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
131 continue;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
132 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
133
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
134 for (StaticSQRelation rel: additional.getSQRelations()) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
135 /* Check if we already have one for this parameter.
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
136 * This is highly unlikely in the data scheme of things. */
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
137 List<StaticSQRelation> old = retval.getRelationsByParameter(
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
138 rel.getParameter());
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
139 if (old != null || !old.isEmpty()) {
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
140 log.warn("Multiple SQ relation Parameters found for different " +
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
141 "measurement_stations at the same range. This should not happen.");
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
142 continue;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
143 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
144 retval.addSQRelation(rel);
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
145 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
146
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
147 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
148 return retval;
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
149 }
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
150
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
151
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
152 public static StaticSQContainer getSQRelations(
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 String river,
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
154 int measurementStation
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 ) {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 Cache cache = CacheFactory.getCache(StaticSQCacheKey.CACHE_NAME);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 StaticSQCacheKey cacheKey;
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 if (cache != null) {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 cacheKey = new StaticSQCacheKey(river, measurementStation);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
162 Element element = cache.get(cacheKey);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
163 if (element != null) {
8543
9a5b3079aad4 (issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8412
diff changeset
164 log.debug("Got static sq relations from cache");
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 return (StaticSQContainer)element.getValue();
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 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 else {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 cacheKey = null;
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
171
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
172 StaticSQContainer values = getUncached(river, measurementStation);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174 if (values != null && cacheKey != null) {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 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
176 Element element = new Element(cacheKey, values);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 cache.put(element);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
178 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
179 return values;
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
180 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
181
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
182 public static StaticSQContainer getDistinctRelation(int id) {
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
183 Session session = SessionHolder.HOLDER.get();
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
184
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
185 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
186 .addScalar("description")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
187 .addScalar("start_time")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
188 .addScalar("stop_time")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
189 .addScalar("station_name")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
190 .addScalar("station_km")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
191 .addScalar("measurement_type")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
192 .addScalar("parameter")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
193 .addScalar("a")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
194 .addScalar("b")
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
195 .addScalar("qmax");
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
196
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
197 query.setParameter("dis_id", id);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
198
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
199 /* This could be done nicer with hibernate */
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
200 List<Object []> list = query.list();
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
201 if (list.isEmpty()) {
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
202 log.debug("Query returened nothing");
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
203 return null;
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
204 }
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
205 Object [] row = list.get(0);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
206
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
207 StaticSQContainer sq = new StaticSQContainer();
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
208 sq.setDescription((String)list.get(0)[0]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
209 sq.setStationName((String)list.get(0)[3]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
210 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
211
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
212 StaticSQRelation relation = new StaticSQRelation();
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
213 relation.setStartTime((Date)row[1]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
214 relation.setStopTime((Date)row[2]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
215 relation.setType((String)row[5]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
216 relation.setParameter((String)row[6]);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
217 relation.setA(((BigDecimal)row[7]).doubleValue());
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
218 relation.setB(((BigDecimal)row[8]).doubleValue());
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
219 relation.setQmax(((BigDecimal)row[9]).doubleValue());
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
220 sq.addSQRelation(relation);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
221
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
222 return sq;
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
223 }
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
224
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
225 private static StaticSQContainer getUncached(
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
226 String river,
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
227 int measurementStation
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
228 ) {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
229 Session session = SessionHolder.HOLDER.get();
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
230
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
231 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
232 .addScalar("description")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
233 .addScalar("start_time")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
234 .addScalar("stop_time")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
235 .addScalar("station_name")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
236 .addScalar("station_km")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
237 .addScalar("measurement_type")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
238 .addScalar("parameter")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
239 .addScalar("a")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
240 .addScalar("b")
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
241 .addScalar("qmax");
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
242
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
243 query.setParameter("river", river);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
244 query.setParameter("ms_id", measurementStation);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
245
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
246 List<Object []> list = query.list();
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
247
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
248 if (list.isEmpty()) {
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
249 log.debug("Query returened empty");
5500
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
250 return new StaticSQContainer();
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
251 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
252
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
253 StaticSQContainer sq = new StaticSQContainer();
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
254 sq.setDescription((String)list.get(0)[0]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
255 sq.setStationName((String)list.get(0)[3]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
256 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
257
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
258 for (Object[] row : list) {
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
259 StaticSQRelation relation = new StaticSQRelation();
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
260 relation.setStartTime((Date)row[1]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
261 relation.setStopTime((Date)row[2]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
262 relation.setType((String)row[5]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
263 relation.setParameter((String)row[6]);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
264 relation.setA(((BigDecimal)row[7]).doubleValue());
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
265 relation.setB(((BigDecimal)row[8]).doubleValue());
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
266 relation.setQmax(((BigDecimal)row[9]).doubleValue());
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
267 sq.addSQRelation(relation);
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
268 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
269 return sq;
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
270 }
700ac898ab0b Added Factory and model for static sq relations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
271 }

http://dive4elements.wald.intevation.org