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 :

http://dive4elements.wald.intevation.org