Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevelDifferenceValue.java @ 2850:a1402c16152f
Added a parser and importer classes used to import waterlevel differences.
flys-backend/trunk@4304 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 26 Apr 2012 09:46:32 +0000 |
parents | |
children | ed13816047b3 |
comparison
equal
deleted
inserted
replaced
2849:c36106f15ac9 | 2850:a1402c16152f |
---|---|
1 package de.intevation.flys.importer; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import org.apache.log4j.Logger; | |
7 | |
8 import org.hibernate.Session; | |
9 import org.hibernate.Query; | |
10 | |
11 import de.intevation.flys.model.WaterlevelDifferenceColumn; | |
12 import de.intevation.flys.model.WaterlevelDifferenceValue; | |
13 | |
14 | |
15 public class ImportWaterlevelDifferenceValue { | |
16 | |
17 private static final Logger log = | |
18 Logger.getLogger(ImportWaterlevelDifferenceValue.class); | |
19 | |
20 | |
21 private Double station; | |
22 private Double value; | |
23 | |
24 private WaterlevelDifferenceValue peer; | |
25 | |
26 | |
27 public ImportWaterlevelDifferenceValue(Double station, Double value) { | |
28 this.station = station; | |
29 this.value = value; | |
30 } | |
31 | |
32 | |
33 public void storeDependencies(WaterlevelDifferenceColumn column) { | |
34 getPeer(column); | |
35 } | |
36 | |
37 | |
38 public WaterlevelDifferenceValue getPeer(WaterlevelDifferenceColumn column) { | |
39 if (peer == null) { | |
40 Session session = ImporterSession.getInstance().getDatabaseSession(); | |
41 Query query = session.createQuery( | |
42 "from WaterlevelDifferenceValue where " + | |
43 " column=:column and " + | |
44 " station=:station and " + | |
45 " value=:value" | |
46 ); | |
47 | |
48 query.setParameter("column", column); | |
49 query.setParameter("station", station); | |
50 query.setParameter("value", value); | |
51 | |
52 List<WaterlevelDifferenceValue> values = query.list(); | |
53 if (values.isEmpty()) { | |
54 peer = new WaterlevelDifferenceValue(column, station, value); | |
55 session.save(peer); | |
56 } | |
57 else { | |
58 peer = values.get(0); | |
59 } | |
60 } | |
61 | |
62 return peer; | |
63 } | |
64 } | |
65 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |