comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportHYKEntry.java @ 1218:00e37d22a589

Added importer models for HYKs. flys-backend/trunk@2344 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 17 Jul 2011 19:03:33 +0000
parents
children 979ff070e368
comparison
equal deleted inserted replaced
1217:d5e39c16fd2a 1218:00e37d22a589
1 package de.intevation.flys.importer;
2
3 import de.intevation.flys.model.HYKEntry;
4 import de.intevation.flys.model.HYK;
5
6 import java.util.Date;
7 import java.util.List;
8 import java.util.ArrayList;
9
10 import java.math.BigDecimal;
11
12 import org.hibernate.Session;
13 import org.hibernate.Query;
14
15 public class ImportHYKEntry
16 {
17 protected ImportHYK hyk;
18 protected BigDecimal km;
19 protected Date measure;
20
21 protected List<ImportHYKFormation> formations;
22
23 protected HYKEntry peer;
24
25 public ImportHYKEntry() {
26 formations = new ArrayList<ImportHYKFormation>();
27 }
28
29 public ImportHYKEntry(
30 ImportHYK hyk,
31 BigDecimal km,
32 Date measure
33 ) {
34 this.hyk = hyk;
35 this.km = km;
36 this.measure = measure;
37 }
38
39 public ImportHYK getHYK() {
40 return hyk;
41 }
42
43 public void setHYK(ImportHYK hyk) {
44 this.hyk = hyk;
45 }
46
47 public void addFormation(ImportHYKFormation formation) {
48 int numFormation = formations.size();
49 formations.add(formation);
50 formation.setFormationNum(numFormation);
51 formation.setEntry(this);
52 }
53
54 public HYKEntry getPeer() {
55 if (peer == null) {
56 HYK h = hyk.getPeer();
57 Session session = ImporterSession.getInstance()
58 .getDatabaseSession();
59 Query query = session.createQuery(
60 "from HYKEntry where hyk=:hyk " +
61 "and km=:km and measure=:measure");
62 query.setParameter("hyk", h);
63 query.setParameter("km", km);
64 query.setParameter("measure", measure);
65 List<HYKEntry> entries = query.list();
66 if (entries.isEmpty()) {
67 peer = new HYKEntry(h, km, measure);
68 session.save(peer);
69 }
70 else {
71 peer = entries.get(0);
72 }
73 }
74 return peer;
75 }
76 }
77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org