Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImportGrainFraction.java @ 8027:1e327d86c898
Load grain fractions from database only. Do not store new ones.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 10 Jul 2014 16:11:55 +0200 |
parents | 4c3ccf2b0304 |
children | fd3a24336e6a |
comparison
equal
deleted
inserted
replaced
8026:4b3054edbbaf | 8027:1e327d86c898 |
---|---|
6 * documentation coming with Dive4Elements River for details. | 6 * documentation coming with Dive4Elements River for details. |
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.importer; | 9 package org.dive4elements.river.importer; |
10 | 10 |
11 import java.util.List; | |
12 | |
13 import org.apache.log4j.Logger; | |
14 | |
15 import org.hibernate.Session; | |
16 import org.hibernate.Query; | |
17 | |
18 import org.dive4elements.river.model.GrainFraction; | 11 import org.dive4elements.river.model.GrainFraction; |
19 | 12 |
20 | 13 |
21 public class ImportGrainFraction { | 14 public class ImportGrainFraction { |
22 | 15 |
23 private static final Logger log = | |
24 Logger.getLogger(ImportGrainFraction.class); | |
25 | |
26 private String name; | 16 private String name; |
27 | 17 |
28 private Double lower; | 18 private Double lower; |
29 private Double upper; | 19 private Double upper; |
30 | |
31 private GrainFraction peer; | |
32 | |
33 | 20 |
34 public ImportGrainFraction(String name) { | 21 public ImportGrainFraction(String name) { |
35 this.name = name; | 22 this.name = name; |
36 } | 23 } |
37 | 24 |
46 this.upper = upper; | 33 this.upper = upper; |
47 } | 34 } |
48 | 35 |
49 | 36 |
50 public void storeDependencies() { | 37 public void storeDependencies() { |
51 log.debug("store dependencies"); | 38 // Nothing to store because its prefilled in schema. |
52 | |
53 getPeer(); | |
54 } | 39 } |
55 | 40 |
56 | 41 |
57 public GrainFraction getPeer() { | 42 public GrainFraction getPeer() { |
58 log.debug("get peer"); | 43 return ImporterSession.getInstance().getGrainFraction(name); |
59 | |
60 if (peer == null) { | |
61 Session session = ImporterSession.getInstance().getDatabaseSession(); | |
62 Query query = session.createQuery( | |
63 "from GrainFraction where " + | |
64 " name=:name and " + | |
65 " lower=:lower and " + | |
66 " upper=:upper" | |
67 ); | |
68 | |
69 query.setParameter("name", name); | |
70 query.setParameter("lower", lower); | |
71 query.setParameter("upper", upper); | |
72 | |
73 List<GrainFraction> fractions = query.list(); | |
74 if (fractions.isEmpty()) { | |
75 log.info("create new GrainFraction"); | |
76 | |
77 peer = new GrainFraction(name, lower, upper); | |
78 session.save(peer); | |
79 } | |
80 else { | |
81 peer = fractions.get(0); | |
82 } | |
83 } | |
84 | |
85 return peer; | |
86 } | 44 } |
87 } | 45 } |
88 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 46 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |