Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/GaugeOverviewInfoService.java @ 6107:e296c05a0c5b
Revert 6081 now that determineGauge handles bordering river sections
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 27 May 2013 15:03:00 +0200 |
parents | af13ceeba52a |
children | e4606eae8ea5 |
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:
5863
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:
5863
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:
4343
diff
changeset
|
9 package org.dive4elements.river.artifacts.services; |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
10 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
11 import java.math.BigDecimal; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
13 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
15 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
16 import org.w3c.dom.Document; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
17 import org.w3c.dom.Element; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
18 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4343
diff
changeset
|
19 import org.dive4elements.artifacts.CallMeta; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4343
diff
changeset
|
20 import org.dive4elements.artifacts.GlobalContext; |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4343
diff
changeset
|
22 import org.dive4elements.river.model.Gauge; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4343
diff
changeset
|
23 import org.dive4elements.river.model.MinMaxWQ; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4343
diff
changeset
|
24 import org.dive4elements.river.model.Range; |
4343
b0173cdbbe51
Removed obsolete imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4247
diff
changeset
|
25 |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
26 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
27 /** |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
28 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
29 */ |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
30 public class GaugeOverviewInfoService extends RiverInfoService { |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
31 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
32 private static final Logger logger = Logger.getLogger( |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
33 GaugeOverviewInfoService.class); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
34 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
35 @Override |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
36 public Document doProcess( |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
37 Document data, |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
38 GlobalContext globalContext, |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
39 CallMeta callMeta |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
40 ) { |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
41 Document result = super.doProcess(data, globalContext, callMeta); |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
42 |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
43 logger.debug("GaugeOverviewInfoService.process"); |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
44 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
45 Element egs = ec.create("gauges"); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
46 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
47 List<Gauge> gauges = river.getGauges(); |
3748
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
48 |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
49 if (logger.isDebugEnabled()) { |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
50 logger.debug("Loaded gauges: " + gauges); |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
51 } |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
52 |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
53 for (Gauge gauge: river.getGauges()) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
54 Element eg = ec.create("gauge"); |
3748
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
55 |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
56 String name = gauge.getName(); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
57 if (name != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
58 ec.addAttr(eg, "name", gauge.getName(), true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
59 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
60 |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
61 String aeo = getStringValue(gauge.getAeo()); |
3748
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
62 if (aeo != null) { |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
63 ec.addAttr(eg, "aeo", aeo, true); |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
64 } |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
65 |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
66 String datum = getStringValue(gauge.getDatum()); |
3748
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
67 if (datum != null) { |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
68 ec.addAttr(eg, "datum", datum, true); |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
69 } |
99f80469ba2b
Pegelinfo: Made generation of datum and aeo NPE proof.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3747
diff
changeset
|
70 |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
71 Range range = gauge.getRange(); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
72 if (range != null) { |
3753
b3fdb5a12613
Add also min and max q values to the river info.
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3748
diff
changeset
|
73 BigDecimal a = range.getA(); |
b3fdb5a12613
Add also min and max q values to the river info.
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3748
diff
changeset
|
74 if (a != null) { |
b3fdb5a12613
Add also min and max q values to the river info.
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3748
diff
changeset
|
75 double min = a.doubleValue(); |
b3fdb5a12613
Add also min and max q values to the river info.
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3748
diff
changeset
|
76 ec.addAttr(eg, "start", Double.toString(min), true); |
b3fdb5a12613
Add also min and max q values to the river info.
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3748
diff
changeset
|
77 } |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
78 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
79 BigDecimal b = range.getB(); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
80 if (b != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
81 double max = range.getB().doubleValue(); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
82 ec.addAttr(eg, "end", Double.toString(max), true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
83 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
84 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
85 MinMaxWQ minmaxwq = gauge.fetchMaxMinWQ(); |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
86 String minw = getStringValue(minmaxwq.getMinW()); |
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
87 String maxw = getStringValue(minmaxwq.getMaxW()); |
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
88 String minq = getStringValue(minmaxwq.getMinQ()); |
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
89 String maxq = getStringValue(minmaxwq.getMaxQ()); |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
90 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
91 if (minw != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
92 ec.addAttr(eg, "minw", minw, true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
93 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
94 if (maxw != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
95 ec.addAttr(eg, "maxw", maxw, true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
96 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
97 if (minq != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
98 ec.addAttr(eg, "minq", minq, true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
99 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
100 if (maxq != null) { |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
101 ec.addAttr(eg, "maxq", maxq, true); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
102 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
103 |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
104 String station = getStringValue(gauge.getStation()); |
3785
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3753
diff
changeset
|
105 if (station != null) { |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3753
diff
changeset
|
106 ec.addAttr(eg, "station", station, true); |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3753
diff
changeset
|
107 } |
a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3753
diff
changeset
|
108 |
3896
82109cea32d2
Return also the official gauge number in a service response
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3895
diff
changeset
|
109 Long official = gauge.getOfficialNumber(); |
82109cea32d2
Return also the official gauge number in a service response
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3895
diff
changeset
|
110 if (official != null) { |
82109cea32d2
Return also the official gauge number in a service response
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3895
diff
changeset
|
111 ec.addAttr(eg, "official", official.toString(), true); |
82109cea32d2
Return also the official gauge number in a service response
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3895
diff
changeset
|
112 } |
82109cea32d2
Return also the official gauge number in a service response
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
3895
diff
changeset
|
113 |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
114 egs.appendChild(eg); |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
115 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
116 |
4247
5da024c2af62
Refactor GaugeOverviewInfoService and MeasurementStationInfoService
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3912
diff
changeset
|
117 riverele.appendChild(egs); |
3739
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
118 |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
119 return result; |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
120 } |
0edc05642fa4
Add new artifact service for the gauge overview
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
121 } |