annotate backend/src/main/java/org/dive4elements/river/model/MeasurementStation.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 851ea37d35f3
children 0a5239a1e46e
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
9 package org.dive4elements.river.model;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
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: 6857
diff changeset
11 import java.util.Iterator;
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
12 import java.util.List;
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: 6857
diff changeset
13 import java.util.ArrayList;
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
14 import java.util.Collections;
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
15 import java.util.Comparator;
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: 6857
diff changeset
16
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import javax.persistence.Column;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import javax.persistence.Entity;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import javax.persistence.GeneratedValue;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import javax.persistence.GenerationType;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import javax.persistence.Id;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import javax.persistence.JoinColumn;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import javax.persistence.OneToOne;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 import javax.persistence.SequenceGenerator;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import javax.persistence.Table;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
27 import org.hibernate.Session;
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
28 import org.hibernate.Query;
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
29
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
30 import org.dive4elements.river.backend.SessionHolder;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
8693
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
32 import org.apache.log4j.Logger;
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
33
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
34 import static org.dive4elements.river.backend.utils.EpsilonComparator.CMP;
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
35
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 @Entity
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 @Table(name = "measurement_station")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public class MeasurementStation {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
39 private static final Logger log = Logger.getLogger(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
40 MeasurementStation.class);
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 private Integer id;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 private String name;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 private String measurementType;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 private String riverside;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 private String operator;
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: 6857
diff changeset
48 private String comment;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 private Range range;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 private Gauge gauge;
5457
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
53 private String gaugeName;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 private TimeInterval observationTimerange;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
8665
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
57 public static final String MEASUREMENT_TYPE_BEDLOAD = "Geschiebe";
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
58 public static final String MEASUREMENT_TYPE_SUSP = "Schwebstoff";
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
59
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
60 public static final class MeasurementStationComparator
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
61 implements Comparator<MeasurementStation> {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
62
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
63 public MeasurementStationComparator() {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
64 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
65
8665
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
66 /* Compare MeasurementStations by km and consider MeasurementStations
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
67 of type "Geschiebe" as smaller if at same km. */
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
68 @Override
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
69 public int compare(MeasurementStation m1, MeasurementStation m2)
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
70 throws IllegalArgumentException {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
71
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
72 if (m1.getRange().getRiver() != m2.getRange().getRiver()) {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
73 throw new IllegalArgumentException(
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
74 "Stations not at same river");
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
75 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
76
8693
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
77 int cmpStations = CMP.compare(m1.retrieveKm(), m2.retrieveKm());
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
78 if (cmpStations == 0) {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
79 if (m1.getMeasurementType().equals(m2.getMeasurementType())) {
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
80 throw new IllegalArgumentException(
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
81 "Two stations of same type at same km");
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
82 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
83
8665
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
84 return m1.getMeasurementType().equals(MEASUREMENT_TYPE_BEDLOAD)
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
85 ? -1
8fbc0649da13 Move static measurement types to their natural home.
Tom Gottfried <tom@intevation.de>
parents: 8602
diff changeset
86 : +1;
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
87 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
88 return cmpStations;
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
89 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
90 }
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
91
4261
1264fef59bfa Add default constructor to MeasurementStation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4193
diff changeset
92 public MeasurementStation() {
1264fef59bfa Add default constructor to MeasurementStation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4193
diff changeset
93 }
1264fef59bfa Add default constructor to MeasurementStation
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4193
diff changeset
94
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: 6857
diff changeset
95 public MeasurementStation(String name, String measurementType,
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
96 String riverside, Range range, Gauge gauge,
5457
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
97 String gaugeName, TimeInterval observationTimerange, String operator,
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: 6857
diff changeset
98 String comment
5457
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
99 ) {
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 this.name = name;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 this.measurementType = measurementType;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 this.riverside = riverside;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 this.range = range;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 this.gauge = gauge;
5457
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
105 this.gaugeName = gaugeName;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 this.observationTimerange = observationTimerange;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 this.operator = operator;
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: 6857
diff changeset
108 this.comment = comment;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 @Id
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
112 @SequenceGenerator(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
113 name = "SEQ_MEASUREMENT_STATION_ID_SEQ",
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
114 sequenceName = "MEASUREMENT_STATION_ID_SEQ",
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
115 allocationSize = 1)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
116 @GeneratedValue(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
117 strategy = GenerationType.SEQUENCE,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8693
diff changeset
118 generator = "SEQ_MEASUREMENT_STATION_ID_SEQ")
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 @Column(name = "id")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 public Integer getId() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 return id;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 public void setId(Integer id) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 this.id = id;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 @Column(name = "name")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 public String getName() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 return name;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 public void setName(String name) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 this.name = name;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 @Column(name = "measurement_type")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 public String getMeasurementType() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 return measurementType;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 public void setMeasurementType(String measurementType) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 this.measurementType = measurementType;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 @Column(name = "riverside")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 public String getRiverside() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 return riverside;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 public void setRiverside(String riverside) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 this.riverside = riverside;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 @OneToOne
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 @JoinColumn(name = "reference_gauge_id")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 public Gauge getGauge() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 return gauge;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 public void setGauge(Gauge gauge) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 this.gauge = gauge;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164
5457
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
165 @Column(name = "reference_gauge_name")
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
166 public String getGaugeName() {
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
167 return gaugeName;
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
168 }
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
169
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
170 public void setGaugeName(String gaugeName) {
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
171 this.gaugeName = gaugeName;
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
172 }
1b676aefaf3a Added gauge name to measurement station parser and model.
Raimund Renkert <rrenkert@intevation.de>
parents: 5428
diff changeset
173
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 @OneToOne
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 @JoinColumn(name = "range_id")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 public Range getRange() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 return range;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 public void setRange(Range range) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 this.range = range;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 @OneToOne
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: 6857
diff changeset
185 @JoinColumn(name = "time_interval_id")
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 public TimeInterval getObservationTimerange() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 return observationTimerange;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 public void setObservationTimerange(TimeInterval observationTimerange) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191 this.observationTimerange = observationTimerange;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 @Column(name = "operator")
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 public String getOperator() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 return operator;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 public void setOperator(String operator) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 this.operator = operator;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202
8415
ffbeffe2d266 SCHEMA CHANGE: 'comment' is not acceptable as column name for Oracle.
Tom Gottfried <tom@intevation.de>
parents: 8412
diff changeset
203 @Column(name = "commentary")
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: 6857
diff changeset
204 public String getComment() {
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
205 return comment;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
206 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
207
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: 6857
diff changeset
208 public void setComment(String comment) {
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
209 this.comment = comment;
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
210 }
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
211
8693
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
212 /* Get the actual location of the measurement station at the river */
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
213 public double retrieveKm() {
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
214 // In case river is km_up, station is at larger value of range
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
215 return getRange().getRiver().getKmUp() && getRange().getB() != null
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
216 ? getRange().getB().doubleValue()
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
217 : getRange().getA().doubleValue();
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
218 }
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
219
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
220 /* Get measurement station of other type at the same location */
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
221 public MeasurementStation findCompanionStation() {
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
222 River river = getRange().getRiver();
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
223 double km = retrieveKm();
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
224 List<MeasurementStation> stations = getStationsAtKM(river, km);
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
225
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
226 for (MeasurementStation station: stations) {
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
227 if (!station.getMeasurementType().equals(getMeasurementType())) {
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
228 return station;
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
229 }
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
230 }
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
231 log.debug("No additional stations found at km " + km +
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
232 " at river " + river);
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
233 return null;
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
234 }
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
235
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: 6857
diff changeset
236 public static List<MeasurementStation> getStationsAtRiver(River river) {
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
237 Session session = SessionHolder.HOLDER.get();
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
238
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
239 Query query = session.createQuery(
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: 6857
diff changeset
240 "from MeasurementStation " +
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
241 "where range.river = :river");
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
242 query.setParameter("river", river);
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
243
8418
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
244 List<MeasurementStation> result = query.list();
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
245 Collections.sort(result, new MeasurementStationComparator());
536a1c0c8a81 Give ordered list of measurement stations at river.
Tom Gottfried <tom@intevation.de>
parents: 8415
diff changeset
246 return result;
6857
d5d717effa06 (issue1347) Add measurement station getter for location
Andre Heinecke <aheinecke@intevation.de>
parents: 5992
diff changeset
247 }
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: 6857
diff changeset
248
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
249 public static List<MeasurementStation> getStationsAtKM(
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
250 River river,
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
251 Double river_km
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
252 ) {
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
253 Session session = SessionHolder.HOLDER.get();
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
254
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
255 Query query = session.createQuery(
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
256 "from MeasurementStation where range.river = :river");
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
257 query.setParameter("river", river);
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
258
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
259 List<MeasurementStation> result = new ArrayList<MeasurementStation>();
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
260 for (Iterator iter = query.iterate(); iter.hasNext();) {
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
261 MeasurementStation st = (MeasurementStation)iter.next();
8693
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
262 if (CMP.compare(st.retrieveKm(), river_km) == 0) {
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: 6857
diff changeset
263 result.add(st);
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
264 }
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
265 }
8693
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
266
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
267 if (result.size() > 2) {
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
268 // TODO: database schema should prevent this
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
269 log.warn("More than two measurement stations at km " + river_km +
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
270 " at river " + river.getName());
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
271 }
851ea37d35f3 (issue1750) New methods for finding the actual location and companion station of a measurement station.
Tom Gottfried <tom@intevation.de>
parents: 8665
diff changeset
272
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: 6857
diff changeset
273 return result;
17db08570637 SCHEMA CHANGE: removed superfluous columns station and river_id from measurement_stations and adapted other components accordingly.
Tom Gottfried <tom@intevation.de>
parents: 6857
diff changeset
274 }
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 }

http://dive4elements.wald.intevation.org