Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/ImportSedimentLoad.java @ 8028:aa054f72e887
Added importer models for sediment load and sediment load values.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 10 Jul 2014 16:57:32 +0200 |
parents | |
children | d86cc6a17b7a |
rev | line source |
---|---|
8028
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.importer; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
2 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
3 import java.util.List; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
4 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
5 import org.dive4elements.river.model.GrainFraction; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.river.model.SedimentLoad; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.river.model.TimeInterval; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
8 import org.hibernate.Query; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
9 import org.hibernate.Session; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
10 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
11 public class ImportSedimentLoad |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
12 { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
13 private SedimentLoad peer; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
14 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
15 private ImportGrainFraction grainFraction; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
16 private ImportTimeInterval timeInterval; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
17 private ImportTimeInterval sqTimeInterval; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
18 private String description; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
19 private Integer kind; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
20 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
21 public ImportSedimentLoad() { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
22 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
23 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
24 public void storeDependencies() { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
25 grainFraction.getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
26 timeInterval.getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
27 sqTimeInterval.getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
28 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
29 getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
30 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
31 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
32 public SedimentLoad getPeer() { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
33 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
34 if (peer == null) { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
35 Session session = ImporterSession.getInstance().getDatabaseSession(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
36 Query query = session.createQuery( |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
37 "from SedimentLoad where " + |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
38 " grainFraction = :grainFraction and " + |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
39 " timeInterval = :timeInterval and " + |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
40 " sqTimeInterval = :sqTimeInterval and " + |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
41 " description = :description and " + |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
42 " kind = :kind"); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
43 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
44 GrainFraction gf = grainFraction.getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
45 TimeInterval ti = timeInterval.getPeer(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
46 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
47 TimeInterval sqti = sqTimeInterval != null |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
48 ? sqTimeInterval.getPeer() |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
49 : null; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
50 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
51 query.setParameter("grainFraction", gf); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
52 query.setParameter("timeInterval", ti); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
53 query.setParameter("sqTimeInterval", sqti); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
54 query.setParameter("description", description); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
55 query.setParameter("kind", kind); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
56 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
57 List<SedimentLoad> loads = query.list(); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
58 if (loads.isEmpty()) { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
59 peer = new SedimentLoad(gf, ti, sqti, description, kind); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
60 session.save(peer); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
61 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
62 else { |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
63 peer = loads.get(0); |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
64 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
65 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
66 |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
67 return peer; |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
68 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
69 } |
aa054f72e887
Added importer models for sediment load and sediment load values.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
70 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |