comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java @ 195:8d3533a03e10

Second part of parsing/storing main values. Should be finished now. flys-backend/trunk@1534 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 21 Mar 2011 15:06:47 +0000
parents
children 67fd63e4ef66
comparison
equal deleted inserted replaced
194:0f0b98ef9b04 195:8d3533a03e10
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
12 import org.hibernate.Session;
13 import org.hibernate.Query;
14
15 public class ImportMainValue
16 {
17 protected ImportGauge gauge;
18 protected ImportNamedMainValue mainValue;
19 protected BigDecimal value;
20
21 protected MainValue peer;
22
23 public ImportMainValue() {
24 }
25
26 public ImportMainValue(
27 ImportGauge gauge,
28 ImportNamedMainValue mainValue,
29 BigDecimal value
30 ) {
31 this.gauge = gauge;
32 this.mainValue = mainValue;
33 this.value = value;
34 }
35
36 public ImportGauge getGauge() {
37 return gauge;
38 }
39
40 public void setGauge(ImportGauge gauge) {
41 this.gauge = gauge;
42 }
43
44 public ImportNamedMainValue getMainValue() {
45 return mainValue;
46 }
47
48 public void setMainValue(ImportNamedMainValue mainValue) {
49 this.mainValue = mainValue;
50 }
51
52 public BigDecimal getValue() {
53 return value;
54 }
55
56 public void setValue(BigDecimal value) {
57 this.value = value;
58 }
59
60 public MainValue getPeer(River river) {
61 if (peer == null) {
62 Session session = Importer.sessionHolder.get();
63 Query query = session.createQuery("from MainValue where "
64 + "gauge.id=:gauge_id and mainValue.id=:name_id "
65 + "and value=:value");
66 Gauge g = gauge.getPeer(river);
67 NamedMainValue n = mainValue.getPeer();
68 query.setParameter("gauge_id", g.getId());
69 query.setParameter("name_id", n.getId());
70 query.setParameter("value", value);
71 List<MainValue> values = query.list();
72 if (values.isEmpty()) {
73 peer = new MainValue(g, n, value, null);
74 session.save(peer);
75 }
76 else {
77 peer = values.get(0);
78 }
79 }
80 return peer;
81 }
82 }
83 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org