Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportDischargeZone.java @ 2827:85b25e74594f
Added temp classes used during the import process of flow velocity data.
flys-backend/trunk@4244 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 17 Apr 2012 08:50:15 +0000 |
parents | |
children | 5b54a648f702 |
comparison
equal
deleted
inserted
replaced
2826:c3f8cf0cdf69 | 2827:85b25e74594f |
---|---|
1 package de.intevation.flys.importer; | |
2 | |
3 import java.math.BigDecimal; | |
4 import java.sql.SQLException; | |
5 import java.util.List; | |
6 | |
7 import org.apache.log4j.Logger; | |
8 | |
9 import org.hibernate.Session; | |
10 import org.hibernate.Query; | |
11 import org.hibernate.exception.ConstraintViolationException; | |
12 | |
13 import de.intevation.flys.model.DischargeZone; | |
14 import de.intevation.flys.model.NamedMainValue; | |
15 import de.intevation.flys.model.River; | |
16 | |
17 | |
18 public class ImportDischargeZone { | |
19 | |
20 private static final Logger log = | |
21 Logger.getLogger(ImportDischargeZone.class); | |
22 | |
23 | |
24 private String gaugeName; | |
25 | |
26 private ImportNamedMainValue mainValue; | |
27 | |
28 private BigDecimal lowerFactor; | |
29 | |
30 private BigDecimal upperFactor; | |
31 | |
32 private DischargeZone peer; | |
33 | |
34 | |
35 public ImportDischargeZone( | |
36 ImportNamedMainValue mainValue, | |
37 String gaugeName, | |
38 BigDecimal lowerFactor, | |
39 BigDecimal upperFactor | |
40 ) { | |
41 this.mainValue = mainValue; | |
42 this.gaugeName = gaugeName; | |
43 this.lowerFactor = lowerFactor; | |
44 this.upperFactor = upperFactor; | |
45 } | |
46 | |
47 | |
48 public void storeDependencies(River river) | |
49 throws SQLException, ConstraintViolationException | |
50 { | |
51 log.debug("store dependencies"); | |
52 | |
53 mainValue.getPeer(); | |
54 | |
55 getPeer(river); | |
56 } | |
57 | |
58 | |
59 public DischargeZone getPeer(River river) { | |
60 if (peer == null) { | |
61 Session session = ImporterSession.getInstance().getDatabaseSession(); | |
62 | |
63 NamedMainValue namedMainValue = mainValue.getPeer(); | |
64 | |
65 Query query = session.createQuery( | |
66 "from DischargeZone where " + | |
67 " river:=river and " + | |
68 " gaugeName=:gaugeName and " + | |
69 " mainValue=:mainValue" | |
70 ); | |
71 | |
72 query.setParameter("river", river); | |
73 query.setParameter("gaugeName", gaugeName); | |
74 query.setParameter("mainValue", namedMainValue); | |
75 | |
76 List<DischargeZone> zone = query.list(); | |
77 | |
78 if (zone.isEmpty()) { | |
79 peer = new DischargeZone( | |
80 gaugeName, | |
81 river, | |
82 namedMainValue, | |
83 lowerFactor, | |
84 upperFactor); | |
85 | |
86 session.save(peer); | |
87 } | |
88 else { | |
89 peer = zone.get(0); | |
90 } | |
91 } | |
92 | |
93 return peer; | |
94 } | |
95 } | |
96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |