comparison flys-backend/src/main/java/org/dive4elements/river/importer/ImportMainValue.java @ 5828:dfb26b03b179

Moved directories to org.dive4elements.river
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 11:53:11 +0200
parents flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java@c75be5205a69
children 18619c1e7c2a
comparison
equal deleted inserted replaced
5827:e308d4ecd35a 5828:dfb26b03b179
1 package de.intevation.flys.importer;
2
3 import java.util.List;
4
5 import java.math.BigDecimal;
6
7 import de.intevation.flys.model.MainValue;
8 import de.intevation.flys.model.Gauge;
9 import de.intevation.flys.model.River;
10 import de.intevation.flys.model.NamedMainValue;
11 import de.intevation.flys.model.TimeInterval;
12
13 import org.hibernate.Session;
14 import org.hibernate.Query;
15
16 public class ImportMainValue
17 {
18 protected ImportGauge gauge;
19 protected ImportNamedMainValue mainValue;
20 protected BigDecimal value;
21 protected ImportTimeInterval timeInterval;
22
23 protected MainValue peer;
24
25 public ImportMainValue() {
26 }
27
28 public ImportMainValue(
29 ImportGauge gauge,
30 ImportNamedMainValue mainValue,
31 BigDecimal value,
32 ImportTimeInterval timeInterval
33 ) {
34 this.gauge = gauge;
35 this.mainValue = mainValue;
36 this.value = value;
37 this.timeInterval = timeInterval;
38 }
39
40 public ImportGauge getGauge() {
41 return gauge;
42 }
43
44 public void setGauge(ImportGauge gauge) {
45 this.gauge = gauge;
46 }
47
48 public ImportNamedMainValue getMainValue() {
49 return mainValue;
50 }
51
52 public void setMainValue(ImportNamedMainValue mainValue) {
53 this.mainValue = mainValue;
54 }
55
56 public BigDecimal getValue() {
57 return value;
58 }
59
60 public void setValue(BigDecimal value) {
61 this.value = value;
62 }
63
64 public MainValue getPeer(River river) {
65 if (peer == null) {
66 Session session = ImporterSession.getInstance().getDatabaseSession();
67 Query query = session.createQuery("from MainValue where "
68 + "gauge.id=:gauge_id and mainValue.id=:name_id "
69 + "and timeInterval = :time "
70 + "and value=:value");
71 Gauge g = gauge.getPeer(river);
72 NamedMainValue n = mainValue.getPeer();
73 TimeInterval t = timeInterval != null
74 ? timeInterval.getPeer()
75 : null;
76 query.setParameter("gauge_id", g.getId());
77 query.setParameter("name_id", n.getId());
78 query.setParameter("value", value);
79 query.setParameter("time", t);
80 List<MainValue> values = query.list();
81 if (values.isEmpty()) {
82 peer = new MainValue(g, n, value, null);
83 session.save(peer);
84 }
85 else {
86 peer = values.get(0);
87 }
88 }
89 return peer;
90 }
91 }
92 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org