Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java @ 5735:c75be5205a69
Backend: Parse time intervals for main values.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 16 Apr 2013 18:07:05 +0200 |
parents | 67fd63e4ef66 |
children |
comparison
equal
deleted
inserted
replaced
5734:06adfba17091 | 5735:c75be5205a69 |
---|---|
6 | 6 |
7 import de.intevation.flys.model.MainValue; | 7 import de.intevation.flys.model.MainValue; |
8 import de.intevation.flys.model.Gauge; | 8 import de.intevation.flys.model.Gauge; |
9 import de.intevation.flys.model.River; | 9 import de.intevation.flys.model.River; |
10 import de.intevation.flys.model.NamedMainValue; | 10 import de.intevation.flys.model.NamedMainValue; |
11 import de.intevation.flys.model.TimeInterval; | |
11 | 12 |
12 import org.hibernate.Session; | 13 import org.hibernate.Session; |
13 import org.hibernate.Query; | 14 import org.hibernate.Query; |
14 | 15 |
15 public class ImportMainValue | 16 public class ImportMainValue |
16 { | 17 { |
17 protected ImportGauge gauge; | 18 protected ImportGauge gauge; |
18 protected ImportNamedMainValue mainValue; | 19 protected ImportNamedMainValue mainValue; |
19 protected BigDecimal value; | 20 protected BigDecimal value; |
21 protected ImportTimeInterval timeInterval; | |
20 | 22 |
21 protected MainValue peer; | 23 protected MainValue peer; |
22 | 24 |
23 public ImportMainValue() { | 25 public ImportMainValue() { |
24 } | 26 } |
25 | 27 |
26 public ImportMainValue( | 28 public ImportMainValue( |
27 ImportGauge gauge, | 29 ImportGauge gauge, |
28 ImportNamedMainValue mainValue, | 30 ImportNamedMainValue mainValue, |
29 BigDecimal value | 31 BigDecimal value, |
32 ImportTimeInterval timeInterval | |
30 ) { | 33 ) { |
31 this.gauge = gauge; | 34 this.gauge = gauge; |
32 this.mainValue = mainValue; | 35 this.mainValue = mainValue; |
33 this.value = value; | 36 this.value = value; |
37 this.timeInterval = timeInterval; | |
34 } | 38 } |
35 | 39 |
36 public ImportGauge getGauge() { | 40 public ImportGauge getGauge() { |
37 return gauge; | 41 return gauge; |
38 } | 42 } |
60 public MainValue getPeer(River river) { | 64 public MainValue getPeer(River river) { |
61 if (peer == null) { | 65 if (peer == null) { |
62 Session session = ImporterSession.getInstance().getDatabaseSession(); | 66 Session session = ImporterSession.getInstance().getDatabaseSession(); |
63 Query query = session.createQuery("from MainValue where " | 67 Query query = session.createQuery("from MainValue where " |
64 + "gauge.id=:gauge_id and mainValue.id=:name_id " | 68 + "gauge.id=:gauge_id and mainValue.id=:name_id " |
69 + "and timeInterval = :time " | |
65 + "and value=:value"); | 70 + "and value=:value"); |
66 Gauge g = gauge.getPeer(river); | 71 Gauge g = gauge.getPeer(river); |
67 NamedMainValue n = mainValue.getPeer(); | 72 NamedMainValue n = mainValue.getPeer(); |
73 TimeInterval t = timeInterval != null | |
74 ? timeInterval.getPeer() | |
75 : null; | |
68 query.setParameter("gauge_id", g.getId()); | 76 query.setParameter("gauge_id", g.getId()); |
69 query.setParameter("name_id", n.getId()); | 77 query.setParameter("name_id", n.getId()); |
70 query.setParameter("value", value); | 78 query.setParameter("value", value); |
79 query.setParameter("time", t); | |
71 List<MainValue> values = query.list(); | 80 List<MainValue> values = query.list(); |
72 if (values.isEmpty()) { | 81 if (values.isEmpty()) { |
73 peer = new MainValue(g, n, value, null); | 82 peer = new MainValue(g, n, value, null); |
74 session.save(peer); | 83 session.save(peer); |
75 } | 84 } |