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 }

http://dive4elements.wald.intevation.org