Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImportSedimentLoad.java @ 8056:d86cc6a17b7a
Importer: Import sediment load at measurement stations.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 18 Jul 2014 15:37:26 +0200 |
parents | aa054f72e887 |
children | bde5f5ec7c72 |
comparison
equal
deleted
inserted
replaced
8055:cd35b76f1ef8 | 8056:d86cc6a17b7a |
---|---|
1 package org.dive4elements.river.importer; | 1 package org.dive4elements.river.importer; |
2 | 2 |
3 import java.util.List; | 3 import java.util.List; |
4 import java.util.ArrayList; | |
4 | 5 |
5 import org.dive4elements.river.model.GrainFraction; | 6 import org.dive4elements.river.model.GrainFraction; |
6 import org.dive4elements.river.model.SedimentLoad; | 7 import org.dive4elements.river.model.SedimentLoad; |
7 import org.dive4elements.river.model.TimeInterval; | 8 import org.dive4elements.river.model.TimeInterval; |
9 import org.dive4elements.river.model.MeasurementStation; | |
8 import org.hibernate.Query; | 10 import org.hibernate.Query; |
9 import org.hibernate.Session; | 11 import org.hibernate.Session; |
10 | 12 |
11 public class ImportSedimentLoad | 13 public class ImportSedimentLoad |
12 { | 14 { |
16 private ImportTimeInterval timeInterval; | 18 private ImportTimeInterval timeInterval; |
17 private ImportTimeInterval sqTimeInterval; | 19 private ImportTimeInterval sqTimeInterval; |
18 private String description; | 20 private String description; |
19 private Integer kind; | 21 private Integer kind; |
20 | 22 |
23 private List<ImportSedimentLoadValue> values; | |
24 | |
21 public ImportSedimentLoad() { | 25 public ImportSedimentLoad() { |
26 this.values = new ArrayList<ImportSedimentLoadValue>(); | |
27 } | |
28 | |
29 public ImportSedimentLoad ( | |
30 ImportGrainFraction grainFraction, | |
31 ImportTimeInterval timeInterval, | |
32 String description, | |
33 Integer kind | |
34 ) { | |
35 this.grainFraction = grainFraction; | |
36 this.timeInterval = timeInterval; | |
37 this.description = description; | |
38 this.kind = kind; | |
39 | |
40 this.values = new ArrayList<ImportSedimentLoadValue>(); | |
41 } | |
42 | |
43 public void addValue(ImportSedimentLoadValue value) { | |
44 values.add(value); | |
22 } | 45 } |
23 | 46 |
24 public void storeDependencies() { | 47 public void storeDependencies() { |
25 grainFraction.getPeer(); | 48 grainFraction.getPeer(); |
26 timeInterval.getPeer(); | 49 timeInterval.getPeer(); |
27 sqTimeInterval.getPeer(); | 50 |
51 if (sqTimeInterval != null) { | |
52 sqTimeInterval.getPeer(); | |
53 } | |
28 | 54 |
29 getPeer(); | 55 getPeer(); |
56 | |
57 for (ImportSedimentLoadValue value : values) { | |
58 value.storeDependencies(peer); | |
59 } | |
60 | |
30 } | 61 } |
31 | 62 |
32 public SedimentLoad getPeer() { | 63 public SedimentLoad getPeer() { |
33 | 64 |
34 if (peer == null) { | 65 if (peer == null) { |
35 Session session = ImporterSession.getInstance().getDatabaseSession(); | 66 Session session = ImporterSession.getInstance().getDatabaseSession(); |
67 | |
68 String sqtquery = sqTimeInterval == null ? | |
69 "sq_time_interval_id is null" : | |
70 "sqTimeInterval = :sqTimeInterval"; | |
36 Query query = session.createQuery( | 71 Query query = session.createQuery( |
37 "from SedimentLoad where " + | 72 "from SedimentLoad where " + |
38 " grainFraction = :grainFraction and " + | 73 " grainFraction = :grainFraction and " + |
39 " timeInterval = :timeInterval and " + | 74 " timeInterval = :timeInterval and " + |
40 " sqTimeInterval = :sqTimeInterval and " + | |
41 " description = :description and " + | 75 " description = :description and " + |
42 " kind = :kind"); | 76 " kind = :kind and " + |
77 sqtquery); | |
43 | 78 |
44 GrainFraction gf = grainFraction.getPeer(); | 79 GrainFraction gf = grainFraction.getPeer(); |
45 TimeInterval ti = timeInterval.getPeer(); | 80 TimeInterval ti = timeInterval.getPeer(); |
46 | 81 |
47 TimeInterval sqti = sqTimeInterval != null | 82 TimeInterval sqti = sqTimeInterval != null |
48 ? sqTimeInterval.getPeer() | 83 ? sqTimeInterval.getPeer() |
49 : null; | 84 : null; |
50 | 85 |
51 query.setParameter("grainFraction", gf); | 86 query.setParameter("grainFraction", gf); |
52 query.setParameter("timeInterval", ti); | 87 query.setParameter("timeInterval", ti); |
53 query.setParameter("sqTimeInterval", sqti); | 88 |
89 if (sqti != null) { | |
90 query.setParameter("sqTimeInterval", sqti); | |
91 } | |
54 query.setParameter("description", description); | 92 query.setParameter("description", description); |
55 query.setParameter("kind", kind); | 93 query.setParameter("kind", kind); |
56 | 94 |
57 List<SedimentLoad> loads = query.list(); | 95 List<SedimentLoad> loads = query.list(); |
58 if (loads.isEmpty()) { | 96 if (loads.isEmpty()) { |