annotate backend/src/main/java/org/dive4elements/river/importer/ImportPorosityValue.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents cdef048c4ac5
children 392bbcd8a88b 0a5239a1e46e
rev   line source
7840
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 *
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 */
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.importer;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import java.math.BigDecimal;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 import java.util.List;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import org.apache.log4j.Logger;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 import org.hibernate.Session;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 import org.hibernate.Query;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 import org.dive4elements.river.model.Porosity;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 import org.dive4elements.river.model.PorosityValue;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 public class ImportPorosityValue {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 private static final Logger log =
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 Logger.getLogger(ImportPorosityValue.class);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 protected PorosityValue peer;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 protected BigDecimal station;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 protected BigDecimal shoreOffset;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 protected BigDecimal porosity;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 protected String description;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 public ImportPorosityValue(
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 BigDecimal station,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 BigDecimal shoreOffset,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 BigDecimal porosity,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 String description
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 ) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 this.station = station;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 this.shoreOffset = shoreOffset;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 this.porosity = porosity;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 this.description = description;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 public void storeDependencies(Porosity porosity) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 log.info("store dependencies");
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 getPeer(porosity);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 public PorosityValue getPeer(Porosity porosity) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 log.info("get peer");
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 if (peer == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
65 Session session = ImporterSession.getInstance()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
66 .getDatabaseSession();
7840
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 Query query = session.createQuery(
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
69 "from PorosityValue "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
70 + "where porosity=:porosity "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
71 + "and station between :station - 0.0001f "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
72 + " and :station + 0.0001f "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
73 + "and porosityValue between :poros -0.0001f "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
74 + " and :poros + 0.0001f "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7862
diff changeset
75 + "and description=:description");
7840
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 query.setParameter("porosity", porosity);
7862
cdef048c4ac5 Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents: 7840
diff changeset
78 query.setParameter("station", station.floatValue());
cdef048c4ac5 Fixed porosity importer. Find existing db entries and parse values from string, not via double.
Raimund Renkert <rrenkert@intevation.de>
parents: 7840
diff changeset
79 query.setParameter("poros", this.porosity.floatValue());
7840
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 query.setParameter("description", description);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 List<PorosityValue> values = query.list();
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 if (values.isEmpty()) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 log.debug("Create new PorosityValue DB instance.");
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 peer = new PorosityValue(
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 porosity,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 station,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 shoreOffset,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 this.porosity,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 description);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 session.save(peer);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 else {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
96 peer = values.get(0);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
97 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
98 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
99
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
100 return peer;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
101 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
102 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org