Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevelDifference.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 | 0d27d02b1208 |
children | 8320427ecd5c |
comparison
equal
deleted
inserted
replaced
3942:43aa1ac8614b | 3943:a5b003595d6c |
---|---|
15 import de.intevation.flys.model.WaterlevelDifference; | 15 import de.intevation.flys.model.WaterlevelDifference; |
16 | 16 |
17 | 17 |
18 public class ImportWaterlevelDifference { | 18 public class ImportWaterlevelDifference { |
19 | 19 |
20 private static final Logger log = | 20 private static final Logger log = Logger |
21 Logger.getLogger(ImportWaterlevelDifference.class); | 21 .getLogger(ImportWaterlevelDifference.class); |
22 | |
23 | 22 |
24 private ImportUnit unit; | 23 private ImportUnit unit; |
25 | 24 |
26 private String description; | 25 private String description; |
27 | 26 |
28 private List<ImportWaterlevelDifferenceColumn> columns; | 27 private List<ImportWaterlevelDifferenceColumn> columns; |
29 | 28 |
30 private WaterlevelDifference peer; | 29 private WaterlevelDifference peer; |
31 | 30 |
32 | |
33 public ImportWaterlevelDifference(String description) { | 31 public ImportWaterlevelDifference(String description) { |
34 this.columns = new ArrayList<ImportWaterlevelDifferenceColumn>(); | 32 this.columns = new ArrayList<ImportWaterlevelDifferenceColumn>(); |
35 | 33 |
36 this.description = description; | 34 this.description = description; |
37 } | 35 } |
38 | 36 |
39 | |
40 public void setUnit(ImportUnit unit) { | 37 public void setUnit(ImportUnit unit) { |
41 this.unit = unit; | 38 this.unit = unit; |
42 } | 39 } |
43 | |
44 | 40 |
45 public void addValue(ImportWaterlevelDifferenceColumn column) { | 41 public void addValue(ImportWaterlevelDifferenceColumn column) { |
46 this.columns.add(column); | 42 this.columns.add(column); |
47 } | 43 } |
48 | 44 |
49 | 45 public void storeDependencies(River river) throws SQLException, |
50 public void storeDependencies(River river) | 46 ConstraintViolationException { |
51 throws SQLException, ConstraintViolationException | |
52 { | |
53 log.info("store dependencies"); | 47 log.info("store dependencies"); |
54 | 48 |
55 WaterlevelDifference peer = getPeer(river); | 49 WaterlevelDifference peer = getPeer(river); |
56 | 50 |
57 int i = 0; | 51 if (peer != null) { |
52 int i = 0; | |
58 | 53 |
59 for (ImportWaterlevelDifferenceColumn column: columns) { | 54 for (ImportWaterlevelDifferenceColumn column : columns) { |
60 column.storeDependencies(peer); | 55 column.storeDependencies(peer); |
61 i++; | 56 i++; |
57 } | |
58 | |
59 log.info("stored " + i + " waterlevel difference columns"); | |
62 } | 60 } |
63 | |
64 log.info("stored " + i + " waterlevel difference columns"); | |
65 } | 61 } |
66 | |
67 | 62 |
68 public WaterlevelDifference getPeer(River river) { | 63 public WaterlevelDifference getPeer(River river) { |
69 Unit u = unit != null ? unit.getPeer() : null; | 64 Unit u = unit != null ? unit.getPeer() : null; |
70 if (u == null) { | 65 if (u == null) { |
71 log.warn("IWD: skip invalid waterlevel difference - no unit set!"); | 66 log.warn("IWD: skip invalid waterlevel difference - no unit set!"); |
72 return null; | 67 return null; |
73 } | 68 } |
74 | 69 |
75 if (peer == null) { | 70 if (peer == null) { |
76 Session session = ImporterSession.getInstance().getDatabaseSession(); | 71 Session session = ImporterSession.getInstance() |
77 Query query = session.createQuery( | 72 .getDatabaseSession(); |
78 "from WaterlevelDifference where " + | 73 Query query = session |
79 " river=:river and " + | 74 .createQuery("from WaterlevelDifference where " |
80 " unit=:unit and " + | 75 + " river=:river and " + " unit=:unit and " |
81 " description=:description" | 76 + " description=:description"); |
82 ); | |
83 | 77 |
84 query.setParameter("river", river); | 78 query.setParameter("river", river); |
85 query.setParameter("unit", u); | 79 query.setParameter("unit", u); |
86 query.setParameter("description", description); | 80 query.setParameter("description", description); |
87 | 81 |