comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevel.java @ 3943:a5b003595d6c

Store minfo values into database only if their peer has been successfully stored. flys-backend/trunk@5520 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 10:05:36 +0000
parents a65b5b0ade6f
children 1c34acb084ee
comparison
equal deleted inserted replaced
3942:43aa1ac8614b 3943:a5b003595d6c
15 15
16 public class ImportWaterlevel { 16 public class ImportWaterlevel {
17 17
18 private static final Logger log = Logger.getLogger(ImportWaterlevel.class); 18 private static final Logger log = Logger.getLogger(ImportWaterlevel.class);
19 19
20
21 private ImportUnit unit; 20 private ImportUnit unit;
22 21
23 private String description; 22 private String description;
24 23
25 private List<ImportWaterlevelQRange> qRanges; 24 private List<ImportWaterlevelQRange> qRanges;
26 25
27 private Waterlevel peer; 26 private Waterlevel peer;
28 27
29
30 public ImportWaterlevel(String description) { 28 public ImportWaterlevel(String description) {
31 this.qRanges = new ArrayList<ImportWaterlevelQRange>(); 29 this.qRanges = new ArrayList<ImportWaterlevelQRange>();
32 30
33 this.description = description; 31 this.description = description;
34 } 32 }
35 33
36
37 public void setUnit(ImportUnit unit) { 34 public void setUnit(ImportUnit unit) {
38 this.unit = unit; 35 this.unit = unit;
39 } 36 }
40 37
41
42 public void addValue(ImportWaterlevelQRange qRange) { 38 public void addValue(ImportWaterlevelQRange qRange) {
43 this.qRanges.add(qRange); 39 this.qRanges.add(qRange);
44 } 40 }
45
46 41
47 public void storeDependencies(River river) { 42 public void storeDependencies(River river) {
48 log.info("store dependencies"); 43 log.info("store dependencies");
49 44
50 Waterlevel peer = getPeer(river); 45 Waterlevel peer = getPeer(river);
51 46
52 int i = 0; 47 if (peer != null) {
48 int i = 0;
53 49
54 for (ImportWaterlevelQRange qRange: qRanges) { 50 for (ImportWaterlevelQRange qRange : qRanges) {
55 qRange.storeDependencies(peer); 51 qRange.storeDependencies(peer);
56 i++; 52 i++;
53 }
54
55 log.info("stored " + i + " waterlevel q ranges");
57 } 56 }
58
59 log.info("stored " + i + " waterlevel q ranges");
60 } 57 }
61
62 58
63 public Waterlevel getPeer(River river) { 59 public Waterlevel getPeer(River river) {
64 Unit u = unit != null ? unit.getPeer() : null; 60 Unit u = unit != null ? unit.getPeer() : null;
65 if (u == null) { 61 if (u == null) {
66 log.warn("skip invalid waterlevel - no unit set!"); 62 log.warn("skip invalid waterlevel - no unit set!");
67 return null; 63 return null;
68 } 64 }
69 65
70 if (peer == null) { 66 if (peer == null) {
71 Session session = ImporterSession.getInstance().getDatabaseSession(); 67 Session session = ImporterSession.getInstance()
72 Query query = session.createQuery( 68 .getDatabaseSession();
73 "from Waterlevel where " + 69 Query query = session.createQuery("from Waterlevel where "
74 " river=:river and " + 70 + " river=:river and " + " unit=:unit and "
75 " unit=:unit and " + 71 + " description=:description");
76 " description=:description"
77 );
78 72
79 query.setParameter("river", river); 73 query.setParameter("river", river);
80 query.setParameter("unit", u); 74 query.setParameter("unit", u);
81 query.setParameter("description", description); 75 query.setParameter("description", description);
82 76

http://dive4elements.wald.intevation.org