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 :

http://dive4elements.wald.intevation.org