Mercurial > dive4elements > river
comparison flys-backend/src/main/java/org/dive4elements/river/importer/ImportHYKFormation.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/ImportHYKFormation.java@ca7d461a53f1 |
children | 18619c1e7c2a |
comparison
equal
deleted
inserted
replaced
5827:e308d4ecd35a | 5828:dfb26b03b179 |
---|---|
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 BigDecimal getTop() { | |
73 return top; | |
74 } | |
75 | |
76 public void setTop(BigDecimal top) { | |
77 this.top = top; | |
78 } | |
79 | |
80 public BigDecimal getBottom() { | |
81 return bottom; | |
82 } | |
83 | |
84 public void setBottom(BigDecimal bottom) { | |
85 this.bottom = bottom; | |
86 } | |
87 | |
88 public BigDecimal getDistanceVL() { | |
89 return distanceVL; | |
90 } | |
91 | |
92 public void setDistanceVL(BigDecimal distanceVL) { | |
93 this.distanceVL = distanceVL; | |
94 } | |
95 | |
96 public BigDecimal getDistanceHF() { | |
97 return distanceHF; | |
98 } | |
99 | |
100 public void setDistanceHF(BigDecimal distanceHF) { | |
101 this.distanceHF = distanceHF; | |
102 } | |
103 | |
104 public BigDecimal getDistanceVR() { | |
105 return distanceVR; | |
106 } | |
107 | |
108 public void setDistanceVR(BigDecimal distanceVR) { | |
109 this.distanceVR = distanceVR; | |
110 } | |
111 | |
112 public void storeDependencies() { | |
113 getPeer(); | |
114 for (ImportHYKFlowZone zone: zones) { | |
115 zone.storeDependencies(); | |
116 } | |
117 } | |
118 | |
119 public HYKFormation getPeer() { | |
120 if (peer == null) { | |
121 HYKEntry e = entry.getPeer(); | |
122 Session session = ImporterSession.getInstance() | |
123 .getDatabaseSession(); | |
124 Query query = session.createQuery( | |
125 "from HYKFormation where formationNum=:formationNum " + | |
126 "and entry=:entry and top=:top and bottom=:bottom " + | |
127 "and distanceVL=:distanceVL and distanceHF=:distanceHF " + | |
128 "and distanceVR=:distanceVR"); | |
129 query.setParameter("formationNum", formationNum); | |
130 query.setParameter("entry", e); | |
131 query.setParameter("top", top); | |
132 query.setParameter("bottom", bottom); | |
133 query.setParameter("distanceVL", distanceVL); | |
134 query.setParameter("distanceHF", distanceHF); | |
135 query.setParameter("distanceVR", distanceVR); | |
136 List<HYKFormation> formations = query.list(); | |
137 if (formations.isEmpty()) { | |
138 peer = new HYKFormation( | |
139 formationNum, e, top, bottom, | |
140 distanceVL, distanceHF, distanceVR); | |
141 session.save(peer); | |
142 } | |
143 else { | |
144 peer = formations.get(0); | |
145 } | |
146 } | |
147 return peer; | |
148 } | |
149 } | |
150 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |