annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java @ 8768:ef0ec2498dd0

issue1841 Only include loads where value != NaN in info service
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 20 Aug 2015 19:14:56 +0200
parents 69b0a71b4845
children 5e38e2924c07
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")) {
8768
ef0ec2498dd0 issue1841 Only include loads where value != NaN in info service
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8750
diff changeset
88 loads = allLoadData.findDistinctSQTimeIntervalNonEpochLoadsWithValue(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);
8768
ef0ec2498dd0 issue1841 Only include loads where value != NaN in info service
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8750
diff changeset
100 loads = allLoadData.findLoadsWithValue(fromD, toD, id);
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
101 } else {
8768
ef0ec2498dd0 issue1841 Only include loads where value != NaN in info service
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8750
diff changeset
102 loads = allLoadData.findLoadsWithValue(fromD, toD);
8229
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 :

http://dive4elements.wald.intevation.org