Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityMeasurementValue.java @ 2831:8fe9c6584b93
Added importer classes used during the import process of flow velocity measurements.
flys-backend/trunk@4249 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 17 Apr 2012 12:00:13 +0000 |
parents | |
children | ac5bd90697c1 |
comparison
equal
deleted
inserted
replaced
2830:6faa47ca1fee | 2831:8fe9c6584b93 |
---|---|
1 package de.intevation.flys.importer; | |
2 | |
3 import java.math.BigDecimal; | |
4 import java.sql.SQLException; | |
5 import java.util.Date; | |
6 import java.util.List; | |
7 | |
8 import org.apache.log4j.Logger; | |
9 | |
10 import org.hibernate.Session; | |
11 import org.hibernate.Query; | |
12 import org.hibernate.exception.ConstraintViolationException; | |
13 | |
14 import de.intevation.flys.model.FlowVelocityMeasurement; | |
15 import de.intevation.flys.model.FlowVelocityMeasurementValue; | |
16 | |
17 | |
18 public class ImportFlowVelocityMeasurementValue { | |
19 | |
20 private static final Logger log = | |
21 Logger.getLogger(ImportFlowVelocityMeasurementValue.class); | |
22 | |
23 | |
24 private Date datetime; | |
25 | |
26 private String description; | |
27 | |
28 private BigDecimal station; | |
29 private BigDecimal w; | |
30 private BigDecimal q; | |
31 private BigDecimal v; | |
32 | |
33 private FlowVelocityMeasurementValue peer; | |
34 | |
35 | |
36 public ImportFlowVelocityMeasurementValue( | |
37 Date datetime, | |
38 BigDecimal station, | |
39 BigDecimal w, | |
40 BigDecimal q, | |
41 BigDecimal v, | |
42 String description | |
43 ) { | |
44 this.datetime = datetime; | |
45 this.station = station; | |
46 this.w = w; | |
47 this.q = q; | |
48 this.v = v; | |
49 this.description = description; | |
50 } | |
51 | |
52 | |
53 | |
54 public void storeDependencies(FlowVelocityMeasurement measurement) | |
55 throws SQLException, ConstraintViolationException | |
56 { | |
57 log.debug("store dependencies"); | |
58 | |
59 getPeer(measurement); | |
60 } | |
61 | |
62 | |
63 public FlowVelocityMeasurementValue getPeer(FlowVelocityMeasurement m) { | |
64 if (peer == null) { | |
65 Session session = ImporterSession.getInstance().getDatabaseSession(); | |
66 | |
67 Query query = session.createQuery( | |
68 "from FlowVelocityMeasurementValue where " + | |
69 " measurement:=measurement and " + | |
70 " station:=station" | |
71 ); | |
72 | |
73 query.setParameter("measurement", m); | |
74 query.setParameter("station", station); | |
75 | |
76 List<FlowVelocityMeasurementValue> values = query.list(); | |
77 | |
78 if (values.isEmpty()) { | |
79 peer = new FlowVelocityMeasurementValue( | |
80 m, | |
81 datetime, | |
82 station, | |
83 w, | |
84 q, | |
85 v, | |
86 description); | |
87 | |
88 session.save(peer); | |
89 } | |
90 else { | |
91 peer = values.get(0); | |
92 } | |
93 } | |
94 | |
95 return peer; | |
96 } | |
97 } | |
98 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |