comparison flys-backend/src/main/java/org/dive4elements/river/importer/ImportSedimentDensity.java @ 5828:dfb26b03b179

Moved directories to org.dive4elements.river
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 11:53:11 +0200
parents flys-backend/src/main/java/de/intevation/flys/importer/ImportSedimentDensity.java@3bd786772798
children 18619c1e7c2a
comparison
equal deleted inserted replaced
5827:e308d4ecd35a 5828:dfb26b03b179
1 package de.intevation.flys.importer;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.apache.log4j.Logger;
7 import org.hibernate.Query;
8 import org.hibernate.Session;
9
10 import de.intevation.flys.model.River;
11 import de.intevation.flys.model.SedimentDensity;
12
13
14 public class ImportSedimentDensity {
15
16 private static Logger log = Logger.getLogger(ImportSedimentDensity.class);
17
18 protected SedimentDensity peer;
19
20 protected ImportDepth depth;
21
22 protected String description;
23
24 protected List<ImportSedimentDensityValue> values;
25
26 public ImportSedimentDensity(String description) {
27 this.description = description;
28 this.values = new ArrayList<ImportSedimentDensityValue>();
29 }
30
31 public String getDescription() {
32 return description;
33 }
34
35 public void setDepth(ImportDepth depth) {
36 this.depth = depth;
37 }
38
39 public void addValue(ImportSedimentDensityValue value) {
40 values.add(value);
41 }
42
43 public void storeDependencies(River river) {
44 log.info("store dependencies");
45
46 if (depth != null) {
47 depth.storeDependencies();
48 }
49
50 SedimentDensity peer = getPeer(river);
51
52 if (peer != null) {
53 log.info("store sediment density values.");
54 for (ImportSedimentDensityValue value : values) {
55 value.storeDependencies(peer);
56 }
57 }
58 }
59
60 public SedimentDensity getPeer(River river) {
61 log.info("get peer");
62
63 if (depth == null) {
64 log.warn("cannot store sediment density '" + description
65 + "': no depth");
66 return null;
67 }
68
69 if (peer == null) {
70 Session session = ImporterSession.getInstance()
71 .getDatabaseSession();
72
73 Query query = session.createQuery("from SedimentDensity where "
74 + " river=:river and " + " depth=:depth");
75
76 query.setParameter("river", river);
77 query.setParameter("depth", depth.getPeer());
78
79 List<SedimentDensity> density = query.list();
80
81 if (density.isEmpty()) {
82 log.debug("Create new SedimentDensity DB instance.");
83
84 peer = new SedimentDensity(river, depth.getPeer(),
85 description);
86
87 session.save(peer);
88 }
89 else {
90 peer = density.get(0);
91 }
92 }
93
94 return peer;
95 }
96 }
97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org