Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityMeasurementValue.java @ 5433:df32d7518f55
Expose function dc:has-result to Function Resolver.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 26 Mar 2013 16:29:12 +0100 |
parents | 4ee97d914501 |
children | 3bd786772798 |
rev | line source |
---|---|
2831
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.importer; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.math.BigDecimal; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.sql.SQLException; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import java.util.Date; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import java.util.List; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.apache.log4j.Logger; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import org.hibernate.Session; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import org.hibernate.Query; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import org.hibernate.exception.ConstraintViolationException; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.flys.model.FlowVelocityMeasurement; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.flys.model.FlowVelocityMeasurementValue; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 public class ImportFlowVelocityMeasurementValue { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 private static final Logger log = |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 Logger.getLogger(ImportFlowVelocityMeasurementValue.class); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 private Date datetime; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 private String description; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 private BigDecimal station; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 private BigDecimal w; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 private BigDecimal q; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 private BigDecimal v; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 private FlowVelocityMeasurementValue peer; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 public ImportFlowVelocityMeasurementValue( |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 Date datetime, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 BigDecimal station, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 BigDecimal w, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 BigDecimal q, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 BigDecimal v, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 String description |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 ) { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 this.datetime = datetime; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 this.station = station; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 this.w = w; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 this.q = q; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 this.v = v; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 this.description = description; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
5416
4ee97d914501
Morpho-Importer: Do not mask database exceptions as broken files
Tom Gottfried <tom.gottfried@intevation.de>
parents:
2832
diff
changeset
|
54 public void storeDependencies(FlowVelocityMeasurement measurement) { |
2831
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 log.debug("store dependencies"); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 getPeer(measurement); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 public FlowVelocityMeasurementValue getPeer(FlowVelocityMeasurement m) { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 if (peer == null) { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 Session session = ImporterSession.getInstance().getDatabaseSession(); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 Query query = session.createQuery( |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 "from FlowVelocityMeasurementValue where " + |
2832
ac5bd90697c1
Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2831
diff
changeset
|
67 " measurement=:measurement and " + |
ac5bd90697c1
Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2831
diff
changeset
|
68 " station=:station and " + |
ac5bd90697c1
Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2831
diff
changeset
|
69 " datetime=:datetime" |
2831
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 ); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 query.setParameter("measurement", m); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 query.setParameter("station", station); |
2832
ac5bd90697c1
Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2831
diff
changeset
|
74 query.setParameter("datetime", datetime); |
2831
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 List<FlowVelocityMeasurementValue> values = query.list(); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 if (values.isEmpty()) { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 peer = new FlowVelocityMeasurementValue( |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 m, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 datetime, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 station, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 w, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 q, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 v, |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 description); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 session.save(peer); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 else { |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 peer = values.get(0); |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 return peer; |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 } |
8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |