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 :

http://dive4elements.wald.intevation.org