Mercurial > dive4elements > river
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 : |