Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/ImportHYKFormation.java @ 9650:a2a42a6bac6b
Importer (s/u-info) extensions:
outer try/catch for parse and log of line no,
catching parsing exception if not enough value fields,
parsing error and warning log messages with line number,
detecting and rejecting duplicate data series,
better differentiation between error and warning log messages
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 14:57:03 +0100 |
parents | 392bbcd8a88b |
children |
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:
5844
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:
5844
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; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
11 import java.math.BigDecimal; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import java.util.ArrayList; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import java.util.List; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
15 import org.dive4elements.river.importer.common.StoreMode; |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
16 import org.dive4elements.river.model.HYKEntry; |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
17 import org.dive4elements.river.model.HYKFormation; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 import org.hibernate.Query; |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
19 import org.hibernate.Session; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 public class ImportHYKFormation |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 { |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 protected int formationNum; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 protected ImportHYKEntry entry; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 protected BigDecimal top; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 protected BigDecimal bottom; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 protected BigDecimal distanceVL; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 protected BigDecimal distanceHF; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 protected BigDecimal distanceVR; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 protected List<ImportHYKFlowZone> zones; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
33 protected StoreMode storeMode; |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
34 |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 protected HYKFormation peer; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 public ImportHYKFormation() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
38 this.zones = new ArrayList<>(); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
39 this.storeMode = StoreMode.NONE; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 public ImportHYKFormation( |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
43 final int formationNum, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
44 final ImportHYKEntry entry, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
45 final BigDecimal top, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
46 final BigDecimal bottom, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
47 final BigDecimal distanceVL, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
48 final BigDecimal distanceHF, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
49 final BigDecimal distanceVR |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
50 ) { |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 this(); |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 this.formationNum = formationNum; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 this.entry = entry; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 this.top = top; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 this.bottom = bottom; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 this.distanceVL = distanceVL; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 this.distanceHF = distanceHF; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 this.distanceVR = distanceVR; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
61 public void addFlowZone(final ImportHYKFlowZone zone) { |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
62 this.zones.add(zone); |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 zone.setFormation(this); |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 public int getFormationNum() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
67 return this.formationNum; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
70 public void setFormationNum(final int formationNum) { |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 this.formationNum = formationNum; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 public ImportHYKEntry getEntry() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
75 return this.entry; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
78 public void setEntry(final ImportHYKEntry entry) { |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 this.entry = entry; |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 |
1224
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
82 public BigDecimal getTop() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
83 return this.top; |
1224
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
84 } |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
85 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
86 public void setTop(final BigDecimal top) { |
1224
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
87 this.top = top; |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
88 } |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
89 |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
90 public BigDecimal getBottom() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
91 return this.bottom; |
1224
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
92 } |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
93 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
94 public void setBottom(final BigDecimal bottom) { |
1224
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
95 this.bottom = bottom; |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
96 } |
ca7d461a53f1
HYK importer: Various small fixes and some extra logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1221
diff
changeset
|
97 |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
98 public BigDecimal getDistanceVL() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
99 return this.distanceVL; |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
100 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
101 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
102 public void setDistanceVL(final BigDecimal distanceVL) { |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
103 this.distanceVL = distanceVL; |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
104 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
105 |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
106 public BigDecimal getDistanceHF() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
107 return this.distanceHF; |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
108 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
109 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
110 public void setDistanceHF(final BigDecimal distanceHF) { |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
111 this.distanceHF = distanceHF; |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
112 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
113 |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
114 public BigDecimal getDistanceVR() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
115 return this.distanceVR; |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
116 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
117 |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
118 public void setDistanceVR(final BigDecimal distanceVR) { |
1219
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
119 this.distanceVR = distanceVR; |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
120 } |
d80997bd94ce
HYKParser: Create data structures while parsing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1218
diff
changeset
|
121 |
1221
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
122 public void storeDependencies() { |
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
123 getPeer(); |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
124 for (final ImportHYKFlowZone zone: this.zones) { |
1221
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
125 zone.storeDependencies(); |
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
126 } |
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
127 } |
979ff070e368
Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1219
diff
changeset
|
128 |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 public HYKFormation getPeer() { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
130 if (this.peer == null) { |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
131 final HYKEntry e = this.entry.getPeer(); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
132 final Session session = ImporterSession.getInstance() |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
133 .getDatabaseSession(); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
134 List<HYKFormation> formations; |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
135 if (this.entry.storeMode == StoreMode.INSERT) |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
136 formations = null; |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
137 else { |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
138 final Query query = session.createQuery( |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
139 "from HYKFormation where formationNum=:formationNum " + |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
140 "and entry=:entry and top=:top and bottom=:bottom " + |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
141 "and distanceVL=:distanceVL and distanceHF=:distanceHF " + |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
142 "and distanceVR=:distanceVR"); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
143 query.setParameter("formationNum", this.formationNum); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
144 query.setParameter("entry", e); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
145 query.setParameter("top", this.top); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
146 query.setParameter("bottom", this.bottom); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
147 query.setParameter("distanceVL", this.distanceVL); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
148 query.setParameter("distanceHF", this.distanceHF); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
149 query.setParameter("distanceVR", this.distanceVR); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
150 formations = query.list(); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
151 } |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
152 if ((formations == null) || formations.isEmpty()) { |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
153 this.peer = new HYKFormation( |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
154 this.formationNum, e, this.top, this.bottom, |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
155 this.distanceVL, this.distanceHF, this.distanceVR); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
156 session.save(this.peer); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
157 this.storeMode = StoreMode.INSERT; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 else { |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
160 this.peer = formations.get(0); |
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
161 this.storeMode = StoreMode.UPDATE; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
163 } |
8986
392bbcd8a88b
Database inserts accelerated by suppressing unnecessary database queries for new data series
mschaefer
parents:
5992
diff
changeset
|
164 return this.peer; |
1218
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
165 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
166 } |
00e37d22a589
Added importer models for HYKs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
167 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |