annotate backend/src/main/java/org/dive4elements/river/importer/ImportSedimentDensityValue.java @ 5844:4dd33b86dc61

Added header to river backend.
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 26 Apr 2013 08:25:41 +0200
parents 5aa05a7a34b7
children 4c3ccf2b0304
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 *
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
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
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
6 * documentation coming with Dive4Elements River for details.
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;
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.math.BigDecimal;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
13 import java.util.List;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
14
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import org.apache.log4j.Logger;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
17 import org.hibernate.Session;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
18 import org.hibernate.Query;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
19
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
20 import org.dive4elements.river.model.SedimentDensity;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
21 import org.dive4elements.river.model.SedimentDensityValue;
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 public class ImportSedimentDensityValue {
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 private static final Logger log =
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 Logger.getLogger(ImportSedimentDensityValue.class);
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 protected SedimentDensityValue peer;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
32 protected BigDecimal station;
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
34 protected BigDecimal shoreOffset;
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
35
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 protected BigDecimal density;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
38 private BigDecimal year;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
39
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 protected String description;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
43 public ImportSedimentDensityValue(
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
44 BigDecimal station,
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
45 BigDecimal shoreOffset,
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
46 BigDecimal density,
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
47 BigDecimal year,
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
48 String description
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
49 ) {
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
50 this.station = station;
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
51 this.shoreOffset = shoreOffset;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
52 this.density = density;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
53 this.year = year;
2816
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
54 this.description = description;
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
55 }
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
56
70b4a31a3306 Implemented the method stubs of the parser for sediment density and made some db schema adaptions.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2813
diff changeset
57
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 public void storeDependencies(SedimentDensity sedimentDensity) {
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 log.info("store dependencies");
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
60
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
61 getPeer(sedimentDensity);
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 public SedimentDensityValue getPeer(SedimentDensity sedimentDensity) {
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 log.info("get peer");
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
68 if (peer == null) {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
69 Session session = ImporterSession.getInstance().getDatabaseSession();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
70
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
71 Query query = session.createQuery(
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
72 "from SedimentDensityValue where " +
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
73 " sedimentDensity=:sedimentDensity and " +
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
74 " station=:station and " +
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
75 " shoreOffset=:shoreOffset and " +
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
76 " density=:density and " +
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
77 " year=:year and " +
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
78 " description=:description");
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
79
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
80 query.setParameter("sedimentDensity", sedimentDensity);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
81 query.setParameter("station", station);
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
82 query.setParameter("shoreOffset", shoreOffset);
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
83 query.setParameter("density", density);
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
84 query.setParameter("year", year);
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
85 query.setParameter("description", description);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
86
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
87 List<SedimentDensityValue> values = query.list();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
88 if (values.isEmpty()) {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
89 log.debug("Create new SedimentDensityValue DB instance.");
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
90
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
91 peer = new SedimentDensityValue(
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
92 sedimentDensity,
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
93 station,
5507
db6c7268b08e Schema change: add shore offset to sediment density values and be more rigid with input files in parser
Tom Gottfried <tom.gottfried@intevation.de>
parents: 4524
diff changeset
94 shoreOffset,
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
95 density,
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
96 year,
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
97 description);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
98
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
99 session.save(peer);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
100 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
101 else {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
102 peer = values.get(0);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
103 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
104 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
105
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
106 return peer;
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org