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()) {

http://dive4elements.wald.intevation.org