Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java @ 8750:69b0a71b4845
(issue1448) Make sq time intervals distinct only for non epoch loads
Previously it was random if the loads choosen to be part of the
distinct sq time interval loads set were epoch loads or not.
This led to wrong results beeing removed in the isEpoch check
afterwards.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 19 Jun 2015 16:35:13 +0200 |
parents | b5cff23bf308 |
children | ef0ec2498dd0 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5868
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5868
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
9 package org.dive4elements.river.artifacts.services; |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.Calendar; |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
12 import java.util.Collection; |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
13 import java.util.Iterator; |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
14 import java.util.Date; |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import org.w3c.dom.Document; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import org.w3c.dom.Element; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
20 import org.dive4elements.artifacts.ArtifactNamespaceContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
21 import org.dive4elements.artifacts.CallMeta; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
22 import org.dive4elements.artifacts.GlobalContext; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
23 import org.dive4elements.artifacts.common.utils.XMLUtils; |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataFactory; |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData; |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
26 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Load; |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
28 /** Service delivering info about sediment loads. */ |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 public class SedimentLoadInfoService |
5868
35b2d86c3fb5
River artifacts: Renamed FLYSService to D4EService.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
30 extends D4EService |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8124
diff
changeset
|
32 /** The log used in this service. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8124
diff
changeset
|
33 private static Logger log = Logger.getLogger(SedimentLoadInfoService.class); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 public static final String RIVER_XPATH = "/art:river/text()"; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 public static final String TYPE_XPATH = "/art:river/art:type/text()"; |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
37 public static final String SQ_TI_XPATH = "/art:river/art:sq_ti_id/text()"; |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 public static final String FROM_XPATH = "/art:river/art:location/art:from/text()"; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 public static final String TO_XPATH = "/art:river/art:location/art:to/text()"; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
41 /** |
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
42 * Create document with sedimentload infos, |
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
43 * constrained by contents in data. |
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
44 */ |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 @Override |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 protected Document doProcess( |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 Document data, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 GlobalContext globalContext, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 CallMeta callMeta) { |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 String river = XMLUtils.xpathString( |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 data, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 RIVER_XPATH, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 ArtifactNamespaceContext.INSTANCE); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 String type = XMLUtils.xpathString( |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 data, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 TYPE_XPATH, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 ArtifactNamespaceContext.INSTANCE); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 String from = XMLUtils.xpathString( |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 data, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 FROM_XPATH, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 ArtifactNamespaceContext.INSTANCE); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 String to = XMLUtils.xpathString( |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 data, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 TO_XPATH, |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 ArtifactNamespaceContext.INSTANCE); |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
66 String sq_ti_id = XMLUtils.xpathString( |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
67 data, |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
68 SQ_TI_XPATH, |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
69 ArtifactNamespaceContext.INSTANCE); |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
70 double fromD, toD; |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 try { |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
72 fromD = Double.parseDouble(from); |
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
73 toD = Double.parseDouble(to); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 catch (NumberFormatException nfe) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8124
diff
changeset
|
76 log.warn("Invalid locations. Cannot return sediment loads."); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 return XMLUtils.newDocument(); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
80 /* This call initializes the sedimentloaddata for the river. Might be |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
81 * expensive but has to be done anyway for the calculation later on. */ |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
82 SedimentLoadData allLoadData = SedimentLoadDataFactory.INSTANCE.getSedimentLoadData( |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
83 river); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
84 |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
85 log.debug("Requested type: " + type + " with sq_ti_id: " + sq_ti_id); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
86 Collection <Load> loads; |
8715
b5cff23bf308
(issue1448) There is no more need for off_epoch infos
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8711
diff
changeset
|
87 if (type.equals("sq_time_intervals")) { |
8750
69b0a71b4845
(issue1448) Make sq time intervals distinct only for non epoch loads
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8715
diff
changeset
|
88 loads = allLoadData.findDistinctSQTimeIntervalNonEpochLoads(fromD, toD); |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
89 |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
90 for (Iterator<Load> it = loads.iterator(); it.hasNext();) { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
91 /* Skip loads without time interval for this info type. */ |
8711
02162b60cf9c
(issue1448) Also filter epoch values in sq_time_interval mode
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8242
diff
changeset
|
92 Load cur = it.next(); |
02162b60cf9c
(issue1448) Also filter epoch values in sq_time_interval mode
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8242
diff
changeset
|
93 if (cur.getSQRelationTimeIntervalId() == null) { |
02162b60cf9c
(issue1448) Also filter epoch values in sq_time_interval mode
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8242
diff
changeset
|
94 it.remove(); |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
95 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
96 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
97 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
98 if (!sq_ti_id.isEmpty()) { |
8239
b207eeb66edd
(issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8229
diff
changeset
|
99 Integer id = Integer.parseInt(sq_ti_id); |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
100 loads = allLoadData.findLoads(fromD, toD, id); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
101 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
102 loads = allLoadData.findLoads(fromD, toD); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
103 } |
8242
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
104 for (Iterator<Load> it = loads.iterator(); it.hasNext();) { |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
105 /* Skip epochs . */ |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
106 if (it.next().isEpoch()) { |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
107 it.remove(); |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
108 } |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
109 } |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
110 } |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
111 |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 return buildDocument(loads); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
115 protected Document buildDocument(Collection<Load> loads) { |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 Document result = XMLUtils.newDocument(); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 Element all = result.createElement("sedimentloads"); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
118 for (Load load : loads) { |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
119 Element ele = result.createElement("sedimentload"); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
120 ele.setAttribute("description", load.getDescription()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
121 if (load.isEpoch()) { |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 Calendar calendarS = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
123 calendarS.setTime(load.getStartTime()); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 Calendar calendarE = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
125 calendarE.setTime(load.getStopTime()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
126 ele.setAttribute( |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 "date", |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 calendarS.get(Calendar.YEAR) + |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 " - " + |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 calendarE.get(Calendar.YEAR)); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 else { |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 Calendar calendar = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
134 calendar.setTime(load.getStartTime()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
135 ele.setAttribute( |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4297
diff
changeset
|
136 "date", |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 String.valueOf(calendar.get(Calendar.YEAR))); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 } |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
139 /* SQ Time interval */ |
8239
b207eeb66edd
(issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8229
diff
changeset
|
140 if (load.getSQRelationTimeIntervalId() != null) { |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
141 ele.setAttribute("sq_ti_id", String.valueOf(load.getSQRelationTimeIntervalId())); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
142 Date start = load.getSQStartTime(); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
143 Date stop = load.getSQStopTime(); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
144 if (start != null && stop != null) { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
145 Calendar calendarS = Calendar.getInstance(); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
146 calendarS.setTime(start); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
147 Calendar calendarE = Calendar.getInstance(); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
148 calendarE.setTime(stop); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
149 ele.setAttribute( |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
150 "sq_date", |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
151 calendarS.get(Calendar.YEAR) + |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
152 " - " + |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
153 calendarE.get(Calendar.YEAR)); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
154 } else if (start != null) { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
155 Calendar calendar = Calendar.getInstance(); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
156 calendar.setTime(start); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
157 ele.setAttribute( |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
158 "sq_date", |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
159 String.valueOf(calendar.get(Calendar.YEAR))); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
160 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
161 log.warn("Load: " + load.getSQRelationTimeIntervalId() + |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
162 " has no beginning."); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
163 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
164 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
165 |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
166 all.appendChild(ele); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 result.appendChild(all); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 return result; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
172 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |