comparison flys-backend/src/main/java/org/dive4elements/river/importer/ImportMeasurementStation.java @ 5828:dfb26b03b179

Moved directories to org.dive4elements.river
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 11:53:11 +0200
parents flys-backend/src/main/java/de/intevation/flys/importer/ImportMeasurementStation.java@bc140668db82
children 18619c1e7c2a
comparison
equal deleted inserted replaced
5827:e308d4ecd35a 5828:dfb26b03b179
1 package de.intevation.flys.importer;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6 import org.hibernate.Session;
7
8 import de.intevation.flys.model.Gauge;
9 import de.intevation.flys.model.MeasurementStation;
10 import de.intevation.flys.model.Range;
11 import de.intevation.flys.model.River;
12 import de.intevation.flys.model.TimeInterval;
13
14
15 public class ImportMeasurementStation {
16
17 private static final Logger log = Logger
18 .getLogger(ImportMeasurementStation.class);
19
20 private MeasurementStation peer;
21
22 public String name;
23 public Double station;
24 public ImportRange range;
25 public String measurementType;
26 public String riverside;
27 public String gauge;
28 public ImportTimeInterval observationTimerange;
29 public String operator;
30 public String description;
31
32 public ImportMeasurementStation() {
33 }
34
35 private Gauge getGaugeFromDB() {
36 Session session = ImporterSession.getInstance().getDatabaseSession();
37
38 org.hibernate.Query query = session
39 .createQuery("FROM Gauge WHERE name=:name");
40
41 query.setParameter("name", gauge);
42 List<Gauge> gauges = query.list();
43
44 return gauges.isEmpty() ? null : gauges.get(0);
45 }
46
47 public boolean storeDependencies(River river) {
48 getPeer(river);
49
50 return peer != null;
51 }
52
53 public Object getPeer(River river) {
54 if (peer == null) {
55 Gauge gauge = null;
56 try {
57 gauge = getGaugeFromDB();
58 if (gauge == null) {
59 log.warn("No gauge found for measurement station '" + name
60 + "'");
61 }
62 }
63 catch (Exception e) {
64 log.error("Exception: " + e.getMessage());
65 }
66
67 Range range = null;
68
69 if (this.range != null) {
70 range = this.range.getPeer(river);
71 }
72
73 if (range == null) {
74 log.warn("No range found for measurement station '" + name + "'");
75 }
76
77 TimeInterval observationTimerange = this.observationTimerange
78 .getPeer();
79 if (observationTimerange == null) {
80 log.warn("No time range found for measurement station '"
81 + name + "'");
82 }
83
84 Session session = ImporterSession.getInstance()
85 .getDatabaseSession();
86
87 org.hibernate.Query query = session
88 .createQuery(
89 "FROM MeasurementStation " +
90 "WHERE river=:river" +
91 " AND station=:station " +
92 " AND measurement_type=:measurement_type ");
93
94 query.setParameter("river", river);
95 query.setParameter("station", station);
96 query.setParameter("measurement_type", measurementType);
97
98 List<MeasurementStation> stations = query.list();
99
100 if (stations.isEmpty()) {
101 log.info("create new measurement station '" + name + "'");
102
103 peer = new MeasurementStation(river, name, measurementType,
104 riverside, station, range, gauge, this.gauge,
105 observationTimerange, operator, description);
106
107 session.save(peer);
108 }
109 }
110
111 return peer;
112 }
113 }

http://dive4elements.wald.intevation.org