annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/SedimentLoadInfoService.java @ 8229:0bf888783683

(issue1448) Extend SL info service to handle sq_time_intervals
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 08 Sep 2014 16:21:26 +0200
parents e4606eae8ea5
children b207eeb66edd
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")) {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
88 /* TODO */
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
89 loads = null;
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
90 } 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
91 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
92
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
93 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
94 /* Skip loads without time interval for this info type. */
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
95 if (it.next().getSQRelationTimeIntervalId() == 0) {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
96 it.remove();
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 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
99 } else {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
100 if (!sq_ti_id.isEmpty()) {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
101 int id = Integer.parseInt(sq_ti_id);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
102 log.debug("Finding only items for id");
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, id);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
104 } else {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
105 log.debug("Finding everything.");
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
106 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
107 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
108 }
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
109
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110 return buildDocument(loads);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
111 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
112
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
113 protected Document buildDocument(Collection<Load> loads) {
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
114 Document result = XMLUtils.newDocument();
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
115 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
116 for (Load load : loads) {
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
117 Element ele = result.createElement("sedimentload");
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
118 ele.setAttribute("description", load.getDescription());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
119 if (load.isEpoch()) {
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 Calendar calendarS = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
121 calendarS.setTime(load.getStartTime());
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 Calendar calendarE = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
123 calendarE.setTime(load.getStopTime());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
124 ele.setAttribute(
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
125 "date",
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 calendarS.get(Calendar.YEAR) +
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 " - " +
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128 calendarE.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 else {
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 Calendar calendar = Calendar.getInstance();
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
132 calendar.setTime(load.getStartTime());
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
133 ele.setAttribute(
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4297
diff changeset
134 "date",
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 String.valueOf(calendar.get(Calendar.YEAR)));
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 }
8229
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
137 /* SQ Time interval */
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
138 if (load.getSQRelationTimeIntervalId() != 0) {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
139 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
140 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
141 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
142 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
143 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
144 calendarS.setTime(start);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
145 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
146 calendarE.setTime(stop);
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
147 ele.setAttribute(
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
148 "sq_date",
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
149 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
150 " - " +
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
151 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
152 } 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
153 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
154 calendar.setTime(start);
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 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
158 } else {
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
159 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
160 " has no beginning.");
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
161 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
162 }
0bf888783683 (issue1448) Extend SL info service to handle sq_time_intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
163
8124
2c21fd1ade39 (issue 1448) Use new data model for sedimentloadinfo
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8024
diff changeset
164 all.appendChild(ele);
4297
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 }
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166 result.appendChild(all);
6d44914b2dd4 Added serverside service for sediment load info.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 return result;
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 }
6726
b68798973da2 Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
170 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org