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