Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportHYKFormation.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 | d80997bd94ce |
comparison
equal
deleted
inserted
replaced
1217:d5e39c16fd2a | 1218:00e37d22a589 |
---|---|
1 package de.intevation.flys.importer; | |
2 | |
3 import de.intevation.flys.model.HYKFormation; | |
4 import de.intevation.flys.model.HYKEntry; | |
5 | |
6 import java.util.ArrayList; | |
7 import java.util.List; | |
8 | |
9 import org.hibernate.Session; | |
10 import org.hibernate.Query; | |
11 | |
12 import java.math.BigDecimal; | |
13 | |
14 public class ImportHYKFormation | |
15 { | |
16 protected int formationNum; | |
17 protected ImportHYKEntry entry; | |
18 protected BigDecimal top; | |
19 protected BigDecimal bottom; | |
20 protected BigDecimal distanceVL; | |
21 protected BigDecimal distanceHF; | |
22 protected BigDecimal distanceVR; | |
23 | |
24 protected List<ImportHYKFlowZone> zones; | |
25 | |
26 protected HYKFormation peer; | |
27 | |
28 public ImportHYKFormation() { | |
29 zones = new ArrayList<ImportHYKFlowZone>(); | |
30 } | |
31 | |
32 public ImportHYKFormation( | |
33 int formationNum, | |
34 ImportHYKEntry entry, | |
35 BigDecimal top, | |
36 BigDecimal bottom, | |
37 BigDecimal distanceVL, | |
38 BigDecimal distanceHF, | |
39 BigDecimal distanceVR | |
40 ) { | |
41 this(); | |
42 this.formationNum = formationNum; | |
43 this.entry = entry; | |
44 this.top = top; | |
45 this.bottom = bottom; | |
46 this.distanceVL = distanceVL; | |
47 this.distanceHF = distanceHF; | |
48 this.distanceVR = distanceVR; | |
49 } | |
50 | |
51 public void addFlowZone(ImportHYKFlowZone zone) { | |
52 zones.add(zone); | |
53 zone.setFormation(this); | |
54 } | |
55 | |
56 public int getFormationNum() { | |
57 return formationNum; | |
58 } | |
59 | |
60 public void setFormationNum(int formationNum) { | |
61 this.formationNum = formationNum; | |
62 } | |
63 | |
64 public ImportHYKEntry getEntry() { | |
65 return entry; | |
66 } | |
67 | |
68 public void setEntry(ImportHYKEntry entry) { | |
69 this.entry = entry; | |
70 } | |
71 | |
72 public HYKFormation getPeer() { | |
73 if (peer == null) { | |
74 HYKEntry e = entry.getPeer(); | |
75 Session session = ImporterSession.getInstance() | |
76 .getDatabaseSession(); | |
77 Query query = session.createQuery( | |
78 "from HYKFormation where formationNum=:formationNum " + | |
79 "and entry=:entry and top=:top and bottom=:bottom " + | |
80 "and distanceVL=:distanceVL and distanceHF=:distanceHF " + | |
81 "and distanceVR=:distanceVR"); | |
82 query.setParameter("formationNum", formationNum); | |
83 query.setParameter("entry", e); | |
84 query.setParameter("top", top); | |
85 query.setParameter("bottom", bottom); | |
86 query.setParameter("distanceVL", distanceVL); | |
87 query.setParameter("distanceHF", distanceHF); | |
88 query.setParameter("distanceVR", distanceVR); | |
89 List<HYKFormation> formations = query.list(); | |
90 if (formations.isEmpty()) { | |
91 peer = new HYKFormation( | |
92 formationNum, e, top, bottom, | |
93 distanceVL, distanceHF, distanceVR); | |
94 session.save(peer); | |
95 } | |
96 else { | |
97 peer = formations.get(0); | |
98 } | |
99 } | |
100 return peer; | |
101 } | |
102 } | |
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |