Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevelValue.java @ 2843:6a9f45697f81
Added importer classes used for MINFO specific waterlevel import.
flys-backend/trunk@4282 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 20 Apr 2012 08:16:39 +0000 |
parents | |
children | a65b5b0ade6f |
comparison
equal
deleted
inserted
replaced
2842:0d55b7722fae | 2843:6a9f45697f81 |
---|---|
1 package de.intevation.flys.importer; | |
2 | |
3 import java.util.List; | |
4 | |
5 import org.hibernate.Session; | |
6 import org.hibernate.Query; | |
7 | |
8 import de.intevation.flys.model.WaterlevelQRange; | |
9 import de.intevation.flys.model.WaterlevelValue; | |
10 | |
11 | |
12 public class ImportWaterlevelValue { | |
13 | |
14 private Double station; | |
15 private Double w; | |
16 | |
17 private WaterlevelValue peer; | |
18 | |
19 | |
20 public ImportWaterlevelValue(Double station, Double w) { | |
21 this.station = station; | |
22 this.w = w; | |
23 } | |
24 | |
25 | |
26 public void storeDependencies(WaterlevelQRange qRange) { | |
27 getPeer(qRange); | |
28 } | |
29 | |
30 | |
31 public WaterlevelValue getPeer(WaterlevelQRange qRange) { | |
32 if (peer == null) { | |
33 Session session = ImporterSession.getInstance().getDatabaseSession(); | |
34 Query query = session.createQuery( | |
35 "from WaterlevelValue where " + | |
36 " qRange=:qRange and " + | |
37 " station=:station and " + | |
38 " w=:w" | |
39 ); | |
40 | |
41 query.setParameter("qRange", qRange); | |
42 query.setParameter("station", station); | |
43 query.setParameter("w", w); | |
44 | |
45 List<WaterlevelValue> values = query.list(); | |
46 | |
47 if (values.isEmpty()) { | |
48 peer = new WaterlevelValue(qRange, station, w); | |
49 session.save(peer); | |
50 } | |
51 else { | |
52 peer = values.get(0); | |
53 } | |
54 } | |
55 | |
56 return peer; | |
57 } | |
58 } | |
59 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |