annotate backend/src/main/java/org/dive4elements/river/importer/ImportPorosityValue.java @ 7841:8036688f24e1

Parse and import porosities.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 30 Apr 2014 14:12:59 +0200
parents 02711de579cc
children cdef048c4ac5
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) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 Session session = ImporterSession.getInstance().getDatabaseSession();
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 Query query = session.createQuery(
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 "from PorosityValue where " +
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 " porosity=:porosity and " +
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 " station=:station and " +
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 " shoreOffset=:shoreOffset and " +
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 " porosityValue=:poros and " +
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 " description=:description");
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 query.setParameter("porosity", porosity);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 query.setParameter("station", station);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 query.setParameter("shoreOffset", shoreOffset);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 query.setParameter("poros", this.porosity);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 query.setParameter("description", description);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 List<PorosityValue> values = query.list();
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 if (values.isEmpty()) {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 log.debug("Create new PorosityValue DB instance.");
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 peer = new PorosityValue(
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 porosity,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 station,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 shoreOffset,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 this.porosity,
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 description);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 session.save(peer);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 }
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 else {
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 peer = values.get(0);
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
96 }
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 return peer;
02711de579cc Added model, parser and importer for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
100 }
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org