comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevelQRange.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.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.Waterlevel;
12 import de.intevation.flys.model.WaterlevelQRange;
13
14
15 public class ImportWaterlevelQRange {
16
17 private static final Logger log =
18 Logger.getLogger(ImportWaterlevelQRange.class);
19
20
21 private Double q;
22
23 private List<ImportWaterlevelValue> values;
24
25 private WaterlevelQRange peer;
26
27
28 public ImportWaterlevelQRange(Double q) {
29 this.values = new ArrayList<ImportWaterlevelValue>();
30 this.q = q;
31 }
32
33 public void addValue(ImportWaterlevelValue value) {
34 this.values.add(value);
35 }
36
37
38 public void storeDependencies(Waterlevel waterlevel) {
39 WaterlevelQRange peer = getPeer(waterlevel);
40
41 int i = 0;
42
43 for (ImportWaterlevelValue value: values) {
44 value.storeDependencies(peer);
45 i++;
46 }
47
48 log.info("stored " + i + " waterlevel values");
49 }
50
51
52 public WaterlevelQRange getPeer(Waterlevel waterlevel) {
53 if (peer == null) {
54 Session session = ImporterSession.getInstance().getDatabaseSession();
55 Query query = session.createQuery(
56 "from WaterlevelQRange where " +
57 " waterlevel=:waterlevel and " +
58 " q=:q"
59 );
60
61 query.setParameter("waterlevel", waterlevel);
62 query.setParameter("q", q);
63
64 List<WaterlevelQRange> qRanges = query.list();
65 if (qRanges.isEmpty()) {
66 peer = new WaterlevelQRange(waterlevel, q);
67 session.save(peer);
68 }
69 else {
70 peer = qRanges.get(0);
71 }
72 }
73
74 return peer;
75 }
76 }
77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org