annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java @ 8870:c26fb37899ca

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 11:59:13 +0100
parents 5e38e2924c07
children 0a5239a1e46e
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. */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
33 private static Logger log = Logger.getLogger(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
34 SedimentLoadInfoService.class);
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 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
37 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
38 public static final String SQ_TI_XPATH = "/art:river/art:sq_ti_id/text()";
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
39 public static final String FROM_XPATH =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
40 "/art:river/art:location/art:from/text()";
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
41 public static final String TO_XPATH =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
42 "/art:river/art:location/art:to/text()";
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43
6726
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
44 /**
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
45 * Create document with sedimentload infos,
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
46 * constrained by contents in data.
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
47 */
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 @Override
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 protected Document doProcess(
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 Document data,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 GlobalContext globalContext,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 CallMeta callMeta) {
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 String river = XMLUtils.xpathString(
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 data,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 RIVER_XPATH,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 ArtifactNamespaceContext.INSTANCE);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 String type = XMLUtils.xpathString(
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 data,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 TYPE_XPATH,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 ArtifactNamespaceContext.INSTANCE);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 String from = XMLUtils.xpathString(
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 data,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 FROM_XPATH,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 ArtifactNamespaceContext.INSTANCE);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 String to = XMLUtils.xpathString(
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 data,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 TO_XPATH,
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 ArtifactNamespaceContext.INSTANCE);
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
69 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
70 data,
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
71 SQ_TI_XPATH,
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
72 ArtifactNamespaceContext.INSTANCE);
6726
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
73 double fromD, toD;
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 try {
6726
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
75 fromD = Double.parseDouble(from);
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
76 toD = Double.parseDouble(to);
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 catch (NumberFormatException nfe) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8124
diff changeset
79 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
80 return XMLUtils.newDocument();
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
83 /* 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
84 * expensive but has to be done anyway for the calculation later on. */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
85 SedimentLoadData allLoadData =
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
86 SedimentLoadDataFactory.INSTANCE.getSedimentLoadData(river);
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
87
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
88 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
89 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
90 if (type.equals("sq_time_intervals")) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
91 loads = allLoadData
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
92 .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
93
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
94 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
95 /* 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
96 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
97 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
98 it.remove();
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
99 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
100 }
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 if (!sq_ti_id.isEmpty()) {
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8229
diff changeset
103 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
104 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
105 } else {
8768
ef0ec2498dd0 issue1841 Only include loads where value != NaN in info service
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8750
diff changeset
106 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
107 }
8242
f8ea1a7ecde6 (issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8239
diff changeset
108 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
109 /* Skip epochs . */
f8ea1a7ecde6 (issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8239
diff changeset
110 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
111 it.remove();
f8ea1a7ecde6 (issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8239
diff changeset
112 }
f8ea1a7ecde6 (issue1448) Fix info service for epoch / periods and off epoch
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8239
diff changeset
113 }
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
114 }
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
115
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116 return buildDocument(loads);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
119 protected Document buildDocument(Collection<Load> loads) {
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 Document result = XMLUtils.newDocument();
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 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
122 for (Load load : loads) {
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
123 Element ele = result.createElement("sedimentload");
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
124 ele.setAttribute("description", load.getDescription());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
125 if (load.isEpoch()) {
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 Calendar calendarS = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
127 calendarS.setTime(load.getStartTime());
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128 Calendar calendarE = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
129 calendarE.setTime(load.getStopTime());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
130 ele.setAttribute(
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 "date",
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 calendarS.get(Calendar.YEAR) +
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 " - " +
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 calendarE.get(Calendar.YEAR));
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 else {
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 Calendar calendar = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
138 calendar.setTime(load.getStartTime());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
139 ele.setAttribute(
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4297
diff changeset
140 "date",
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 String.valueOf(calendar.get(Calendar.YEAR)));
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 }
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
143 /* SQ Time interval */
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8229
diff changeset
144 if (load.getSQRelationTimeIntervalId() != null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
145 ele.setAttribute(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
146 "sq_ti_id",
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8768
diff changeset
147 String.valueOf(load.getSQRelationTimeIntervalId()));
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
148 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
149 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
150 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
151 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
152 calendarS.setTime(start);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
153 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
154 calendarE.setTime(stop);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
155 ele.setAttribute(
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
156 "sq_date",
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
157 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
158 " - " +
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
159 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
160 } 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
161 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
162 calendar.setTime(start);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
163 ele.setAttribute(
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
164 "sq_date",
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
165 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
166 } else {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
167 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
168 " has no beginning.");
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
169 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
170 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
171
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
172 all.appendChild(ele);
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174 result.appendChild(all);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 return result;
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
176 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 }
6726
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
178 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org