comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportWaterlevelDifference.java @ 5228:8320427ecd5c

ImportWaterlevel*: Remove connection to orm-based waterlevels (WIP).
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 11 Mar 2013 15:07:19 +0100
parents a5b003595d6c
children 7c0dcc398cc2
comparison
equal deleted inserted replaced
5227:a981222b6260 5228:8320427ecd5c
12 12
13 import de.intevation.flys.model.River; 13 import de.intevation.flys.model.River;
14 import de.intevation.flys.model.Unit; 14 import de.intevation.flys.model.Unit;
15 import de.intevation.flys.model.WaterlevelDifference; 15 import de.intevation.flys.model.WaterlevelDifference;
16 16
17 17 /**
18 * This Model class does not have a representive hibernated version,
19 * as it is in transition to be remoed.
20 */
18 public class ImportWaterlevelDifference { 21 public class ImportWaterlevelDifference {
19 22
20 private static final Logger log = Logger 23 private static final Logger log = Logger
21 .getLogger(ImportWaterlevelDifference.class); 24 .getLogger(ImportWaterlevelDifference.class);
22 25
36 39
37 public void setUnit(ImportUnit unit) { 40 public void setUnit(ImportUnit unit) {
38 this.unit = unit; 41 this.unit = unit;
39 } 42 }
40 43
44 public ImportUnit getUnit() {
45 return unit;
46 }
47
48 public String getDescription() {
49 return description;
50 }
51
52 public List<ImportWaterlevelDifferenceColumn> getColumns() {
53 return columns;
54 }
55
41 public void addValue(ImportWaterlevelDifferenceColumn column) { 56 public void addValue(ImportWaterlevelDifferenceColumn column) {
42 this.columns.add(column); 57 this.columns.add(column);
43 } 58 }
44
45 public void storeDependencies(River river) throws SQLException,
46 ConstraintViolationException {
47 log.info("store dependencies");
48
49 WaterlevelDifference peer = getPeer(river);
50
51 if (peer != null) {
52 int i = 0;
53
54 for (ImportWaterlevelDifferenceColumn column : columns) {
55 column.storeDependencies(peer);
56 i++;
57 }
58
59 log.info("stored " + i + " waterlevel difference columns");
60 }
61 }
62
63 public WaterlevelDifference getPeer(River river) {
64 Unit u = unit != null ? unit.getPeer() : null;
65 if (u == null) {
66 log.warn("IWD: skip invalid waterlevel difference - no unit set!");
67 return null;
68 }
69
70 if (peer == null) {
71 Session session = ImporterSession.getInstance()
72 .getDatabaseSession();
73 Query query = session
74 .createQuery("from WaterlevelDifference where "
75 + " river=:river and " + " unit=:unit and "
76 + " description=:description");
77
78 query.setParameter("river", river);
79 query.setParameter("unit", u);
80 query.setParameter("description", description);
81
82 List<WaterlevelDifference> diffs = query.list();
83 if (diffs.isEmpty()) {
84 peer = new WaterlevelDifference(river, u, description);
85 session.save(peer);
86 }
87 else {
88 peer = diffs.get(0);
89 }
90 }
91
92 return peer;
93 }
94 } 59 }
95 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 60 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org