Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java @ 8242:f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
This also includes a bit cleanup to move the sqRelationTimeInterval check
to the creation of the load list in SedimentLoadData allLoads.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 09 Sep 2014 11:13:37 +0200 |
parents | b207eeb66edd |
children | 02162b60cf9c |
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; |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
87 if (type.equals("off_epoch")) { |
8242
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
88 loads = allLoadData.findUniqueTiOfficialLoads(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 } else if (type.equals("sq_time_intervals")) { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
90 loads = allLoadData.findUniqueTimeIntervalLoads(fromD, toD); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
91 |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
92 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
|
93 /* Skip loads without time interval for this info type. */ |
8239
b207eeb66edd
(issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8229
diff
changeset
|
94 if (it.next().getSQRelationTimeIntervalId() == null) { |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
95 it.remove(); |
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 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
98 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
99 if (!sq_ti_id.isEmpty()) { |
8239
b207eeb66edd
(issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8229
diff
changeset
|
100 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
|
101 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
|
102 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
103 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
|
104 } |
8242
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
105 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
|
106 /* Skip epochs . */ |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
107 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
|
108 it.remove(); |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
109 } |
f8ea1a7ecde6
(issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8239
diff
changeset
|
110 } |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
111 } |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
112 |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 return buildDocument(loads); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
116 protected Document buildDocument(Collection<Load> loads) { |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 Document result = XMLUtils.newDocument(); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 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
|
119 for (Load load : loads) { |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
120 Element ele = result.createElement("sedimentload"); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
121 ele.setAttribute("description", load.getDescription()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
122 if (load.isEpoch()) { |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 Calendar calendarS = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
124 calendarS.setTime(load.getStartTime()); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 Calendar calendarE = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
126 calendarE.setTime(load.getStopTime()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
127 ele.setAttribute( |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 "date", |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 calendarS.get(Calendar.YEAR) + |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 " - " + |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 calendarE.get(Calendar.YEAR)); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 else { |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 Calendar calendar = Calendar.getInstance(); |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
135 calendar.setTime(load.getStartTime()); |
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
136 ele.setAttribute( |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4297
diff
changeset
|
137 "date", |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 String.valueOf(calendar.get(Calendar.YEAR))); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 } |
8229
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
140 /* SQ Time interval */ |
8239
b207eeb66edd
(issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8229
diff
changeset
|
141 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
|
142 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
|
143 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
|
144 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
|
145 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
|
146 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
|
147 calendarS.setTime(start); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
148 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
|
149 calendarE.setTime(stop); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
150 ele.setAttribute( |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
151 "sq_date", |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
152 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
|
153 " - " + |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
154 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
|
155 } 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
|
156 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
|
157 calendar.setTime(start); |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
158 ele.setAttribute( |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
159 "sq_date", |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
160 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
|
161 } else { |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
162 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
|
163 " has no beginning."); |
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 } |
0bf888783683
(issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
166 |
8124
2c21fd1ade39
(issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
167 all.appendChild(ele); |
4297
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 result.appendChild(all); |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 return result; |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
6d44914b2dd4
Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 } |
6726
b68798973da2
Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
173 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |