annotate flys-backend/src/main/java/de/intevation/flys/importer/ImportSedimentDensityValue.java @ 4524:be9e28cff0c4

Parse and store year in sediment densities. * Year is parsed ('guessed') from description column in .csv file.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 14 Nov 2012 17:24:55 +0100
parents 8979f2294af9
children db6c7268b08e
rev   line source
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.importer;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.math.BigDecimal;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
5 import java.util.List;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
6
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 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
8
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
9 import org.hibernate.Session;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
10 import org.hibernate.Query;
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
11
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.flys.model.SedimentDensity;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.flys.model.SedimentDensityValue;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 public class ImportSedimentDensityValue {
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 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
19 Logger.getLogger(ImportSedimentDensityValue.class);
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 protected SedimentDensityValue peer;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
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
24 protected BigDecimal station;
2813
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 protected BigDecimal density;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
28 private BigDecimal year;
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
29
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 protected String description;
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
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
33 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
34 BigDecimal station,
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
35 BigDecimal density,
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
36 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
37 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
38 ) {
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
39 this.station = station;
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
40 this.density = density;
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
41 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
42 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
43 }
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
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
45
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 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
47 log.info("store dependencies");
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
48
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
49 getPeer(sedimentDensity);
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 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
54 log.info("get peer");
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
56 if (peer == null) {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
57 Session session = ImporterSession.getInstance().getDatabaseSession();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
58
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
59 Query query = session.createQuery(
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
60 "from SedimentDensityValue where " +
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
61 " sedimentDensity=:sedimentDensity and " +
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
62 " station=:station and " +
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
63 " density=:density and " +
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
64 " year=:year and " +
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
65 " description=:description");
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
66
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
67 query.setParameter("sedimentDensity", sedimentDensity);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
68 query.setParameter("station", station);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
69 query.setParameter("density", density);
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
70 query.setParameter("year", year);
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
71 query.setParameter("description", description);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
72
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
73 List<SedimentDensityValue> values = query.list();
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
74 if (values.isEmpty()) {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
75 log.debug("Create new SedimentDensityValue DB instance.");
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
76
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
77 peer = new SedimentDensityValue(
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
78 sedimentDensity,
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
79 station,
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
80 density,
4524
be9e28cff0c4 Parse and store year in sediment densities.
Raimund Renkert <rrenkert@intevation.de>
parents: 2817
diff changeset
81 year,
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
82 description);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
83
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
84 session.save(peer);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
85 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
86 else {
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
87 peer = values.get(0);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
88 }
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2816
diff changeset
89 }
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 return peer;
2813
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 }
f121c0f456ab Added new importer classes used during MINFO sediment density import.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org