Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/ImportMainValue.java @ 6285:f55a99fe5ce3
Whitespace correction and cminor ruft code removal.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 12 Jun 2013 10:43:30 +0200 |
parents | 4c3ccf2b0304 |
children | 5e38e2924c07 |
rev | line source |
---|---|
5844
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5992
4c3ccf2b0304
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5907
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5844
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5992
4c3ccf2b0304
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5907
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5844
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4dd33b86dc61
Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5829
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
9 package org.dive4elements.river.importer; |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import java.math.BigDecimal; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
5829
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
15 import org.dive4elements.river.model.MainValue; |
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
16 import org.dive4elements.river.model.Gauge; |
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
17 import org.dive4elements.river.model.River; |
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
18 import org.dive4elements.river.model.NamedMainValue; |
18619c1e7c2a
Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5828
diff
changeset
|
19 import org.dive4elements.river.model.TimeInterval; |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 import org.hibernate.Session; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 import org.hibernate.Query; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 public class ImportMainValue |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 protected ImportGauge gauge; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 protected ImportNamedMainValue mainValue; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 protected BigDecimal value; |
5735
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
29 protected ImportTimeInterval timeInterval; |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 protected MainValue peer; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 public ImportMainValue() { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 public ImportMainValue( |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 ImportGauge gauge, |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 ImportNamedMainValue mainValue, |
5735
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
39 BigDecimal value, |
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
40 ImportTimeInterval timeInterval |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 ) { |
5735
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
42 this.gauge = gauge; |
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
43 this.mainValue = mainValue; |
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
44 this.value = value; |
c75be5205a69
Backend: Parse time intervals for main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
497
diff
changeset
|
45 this.timeInterval = timeInterval; |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 public ImportGauge getGauge() { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 return gauge; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 public void setGauge(ImportGauge gauge) { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 this.gauge = gauge; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 public ImportNamedMainValue getMainValue() { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 return mainValue; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 public void setMainValue(ImportNamedMainValue mainValue) { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 this.mainValue = mainValue; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 public BigDecimal getValue() { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 return value; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 public void setValue(BigDecimal value) { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 this.value = value; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 public MainValue getPeer(River river) { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 if (peer == null) { |
497
67fd63e4ef66
Importer: centralized caching
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
195
diff
changeset
|
74 Session session = ImporterSession.getInstance().getDatabaseSession(); |
5907
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
75 |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
76 Query query; |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
77 |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
78 TimeInterval t = timeInterval != null |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
79 ? timeInterval.getPeer() |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
80 : null; |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
81 |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
82 if (t != null) { |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
83 query = session.createQuery("from MainValue where " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
84 + "gauge.id=:gauge_id and mainValue.id=:name_id " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
85 + "and timeInterval = :time " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
86 + "and value=:value"); |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
87 query.setParameter("time", t); |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
88 } |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
89 else { |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
90 query = session.createQuery("from MainValue where " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
91 + "gauge.id=:gauge_id and mainValue.id=:name_id " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
92 + "and timeInterval is null " |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
93 + "and value=:value"); |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
94 } |
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
95 |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 Gauge g = gauge.getPeer(river); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 NamedMainValue n = mainValue.getPeer(); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 query.setParameter("gauge_id", g.getId()); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 query.setParameter("name_id", n.getId()); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 query.setParameter("value", value); |
5907
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
101 |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 List<MainValue> values = query.list(); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 if (values.isEmpty()) { |
5907
e76fceaf84fc
Importer: Store id of time interval in main values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5844
diff
changeset
|
104 peer = new MainValue(g, n, value, t); |
195
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 session.save(peer); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 else { |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 peer = values.get(0); |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 return peer; |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 } |
8d3533a03e10
Second part of parsing/storing main values. Should be finished now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |