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 :

http://dive4elements.wald.intevation.org