comparison backend/src/main/java/org/dive4elements/river/importer/ImportDischargeTable.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-backend/src/main/java/org/dive4elements/river/importer/ImportDischargeTable.java@18619c1e7c2a
children 4dd33b86dc61
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.importer;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.hibernate.Session;
7 import org.hibernate.Query;
8
9 import org.dive4elements.river.model.DischargeTable;
10 import org.dive4elements.river.model.Gauge;
11 import org.dive4elements.river.model.TimeInterval;
12
13 import org.apache.log4j.Logger;
14
15 public class ImportDischargeTable
16 {
17 private static Logger log = Logger.getLogger(ImportDischargeTable.class);
18
19 protected DischargeTable peer;
20
21 protected String description;
22
23 protected Integer kind;
24
25 protected List<ImportDischargeTableValue> dischargeTableValues;
26
27 protected ImportTimeInterval timeInterval;
28
29 public ImportDischargeTable() {
30 this(0, null);
31 }
32
33 public ImportDischargeTable(int kind, String description) {
34 this.kind = kind;
35 this.description = description;
36 dischargeTableValues = new ArrayList<ImportDischargeTableValue>();
37 }
38
39
40 public String getDescription() {
41 return description;
42 }
43
44 public void setDescription(String description) {
45 this.description = description;
46 }
47
48
49 public void addDischargeTableValue(ImportDischargeTableValue value) {
50 dischargeTableValues.add(value);
51 }
52
53
54 public void setDischargeTableValues(List<ImportDischargeTableValue> values){
55 this.dischargeTableValues = values;
56 }
57
58
59 public List<ImportDischargeTableValue> getDischargeTableValues() {
60 return dischargeTableValues;
61 }
62
63 public ImportTimeInterval getTimeInterval() {
64 return timeInterval;
65 }
66
67 public void setTimeInterval(ImportTimeInterval timeInterval) {
68 this.timeInterval = timeInterval;
69 }
70
71
72 public DischargeTable getPeer(Gauge gauge) {
73 if (peer == null) {
74 TimeInterval ti = timeInterval != null
75 ? timeInterval.getPeer()
76 : null;
77 Session session = ImporterSession.getInstance().getDatabaseSession();
78
79 Query query = session.createQuery(
80 "from DischargeTable where " +
81 "gauge.id=:gauge and kind=:kind and " +
82 "description=:description and timeInterval=:interval");
83 query.setParameter("gauge", gauge.getId());
84 query.setParameter("description", description);
85 query.setParameter("kind", kind);
86 query.setParameter("interval", ti);
87
88 List<DischargeTable> dischargeTables = query.list();
89 if (dischargeTables.isEmpty()) {
90 peer = new DischargeTable(gauge, description, null, kind, ti);
91 session.save(peer);
92 }
93 else {
94 peer = dischargeTables.get(0);
95 }
96 }
97
98 return peer;
99 }
100
101
102 public void storeDependencies(Gauge gauge) {
103 log.info("store discharge table '" + description + "'");
104 storeDischargeTableValues(gauge);
105 }
106
107
108 public void storeDischargeTableValues(Gauge gauge) {
109 DischargeTable dischargeTable = getPeer(gauge);
110
111 for (ImportDischargeTableValue value: dischargeTableValues) {
112 value.getPeer(dischargeTable);
113 }
114 }
115 }
116 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org