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 :

http://dive4elements.wald.intevation.org