comparison artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java@bd047b71ab37
children 4897a58c8746
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.artifacts.services;
2
3 import java.math.BigDecimal;
4 import java.text.DateFormat;
5 import java.util.Date;
6 import java.util.List;
7 import java.util.Locale;
8
9 import org.apache.log4j.Logger;
10
11 import org.w3c.dom.Document;
12 import org.w3c.dom.Element;
13
14 import org.dive4elements.artifacts.CallMeta;
15 import org.dive4elements.artifacts.GlobalContext;
16
17 import org.dive4elements.river.model.MeasurementStation;
18 import org.dive4elements.river.model.Range;
19 import org.dive4elements.river.model.TimeInterval;
20
21 /**
22 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
23 */
24 public class MeasurementStationInfoService extends RiverInfoService {
25
26 private static final Logger logger = Logger.getLogger(
27 MeasurementStationInfoService.class);
28
29 public static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(
30 DateFormat.SHORT, Locale.GERMANY);
31
32 @Override
33 public Document doProcess(
34 Document data,
35 GlobalContext globalContext,
36 CallMeta callMeta
37 ) {
38 Document result = super.doProcess(data, globalContext, callMeta);
39
40 Element egs = ec.create("measurement-stations");
41
42 List<MeasurementStation> mstations = river.getMeasurementStations();
43
44 if (logger.isDebugEnabled()) {
45 logger.debug("Loaded stations: " + mstations);
46 }
47
48 for (MeasurementStation mstation: mstations) {
49 Element eg = ec.create("measurement-station");
50
51 String name = mstation.getName();
52 if (name != null) {
53 ec.addAttr(eg, "name", name, true);
54 }
55
56 Integer id = mstation.getId();
57 if (id != null) {
58 ec.addAttr(eg, "id", Integer.toString(id), true);
59 }
60
61 String type = mstation.getMeasurementType();
62 if (type != null) {
63 ec.addAttr(eg, "type", type, true);
64 }
65
66 String riverside = mstation.getRiverside();
67 if (riverside != null) {
68 ec.addAttr(eg, "riverside", riverside, true);
69 }
70
71 Double station = mstation.getStation();
72 if (station != null) {
73 ec.addAttr(eg, "station", Double.toString(station), true);
74 }
75
76 Range range = mstation.getRange();
77 if (range != null) {
78 BigDecimal a = range.getA();
79 if (a != null) {
80 ec.addAttr(eg, "start", getStringValue(a), true);
81 }
82
83 BigDecimal b = range.getB();
84 if (b != null) {
85 ec.addAttr(eg, "end", getStringValue(b), true);
86 }
87 }
88
89 String moperator = mstation.getOperator();
90 if (moperator != null) {
91 ec.addAttr(eg, "operator", moperator, true);
92 }
93
94 TimeInterval tinterval = mstation.getObservationTimerange();
95 if (tinterval != null) {
96 Date tstart = tinterval.getStartTime();
97 if (tstart != null) {
98 ec.addAttr(eg, "starttime", DATE_FORMAT.format(tstart),
99 true);
100 }
101 Date tstop = tinterval.getStopTime();
102 if (tstop != null) {
103 ec.addAttr(eg, "stoptime", DATE_FORMAT.format(tstop),
104 true);
105 }
106 }
107
108 String gaugename= mstation.getGaugeName();
109
110 if (gaugename != null) {
111 Element egauge = ec.create("gauge");
112 ec.addAttr(egauge, "name", gaugename, true);
113 eg.appendChild(egauge);
114 }
115
116 egs.appendChild(eg);
117 }
118
119 this.riverele.appendChild(egs);
120
121 return result;
122 }
123
124 }

http://dive4elements.wald.intevation.org