diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,124 @@
+package org.dive4elements.river.artifacts.services;
+
+import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.log4j.Logger;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.dive4elements.artifacts.CallMeta;
+import org.dive4elements.artifacts.GlobalContext;
+
+import org.dive4elements.river.model.MeasurementStation;
+import org.dive4elements.river.model.Range;
+import org.dive4elements.river.model.TimeInterval;
+
+/**
+ * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
+ */
+public class MeasurementStationInfoService extends RiverInfoService {
+
+    private static final Logger logger = Logger.getLogger(
+            MeasurementStationInfoService.class);
+
+    public static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(
+        DateFormat.SHORT, Locale.GERMANY);
+
+    @Override
+    public Document doProcess(
+        Document      data,
+        GlobalContext globalContext,
+        CallMeta      callMeta
+    ) {
+        Document result = super.doProcess(data, globalContext, callMeta);
+
+        Element egs = ec.create("measurement-stations");
+
+        List<MeasurementStation> mstations = river.getMeasurementStations();
+
+        if (logger.isDebugEnabled()) {
+            logger.debug("Loaded stations: " + mstations);
+        }
+
+        for (MeasurementStation mstation: mstations) {
+            Element eg = ec.create("measurement-station");
+
+            String name = mstation.getName();
+            if (name != null) {
+                ec.addAttr(eg, "name", name, true);
+            }
+
+            Integer id = mstation.getId();
+            if (id != null) {
+                ec.addAttr(eg, "id", Integer.toString(id), true);
+            }
+
+            String type = mstation.getMeasurementType();
+            if (type != null) {
+                ec.addAttr(eg, "type", type, true);
+            }
+
+            String riverside = mstation.getRiverside();
+            if (riverside != null) {
+                ec.addAttr(eg, "riverside", riverside, true);
+            }
+
+            Double station = mstation.getStation();
+            if (station != null) {
+                ec.addAttr(eg, "station", Double.toString(station), true);
+            }
+
+            Range range = mstation.getRange();
+            if (range != null) {
+                BigDecimal a = range.getA();
+                if (a != null) {
+                    ec.addAttr(eg, "start", getStringValue(a), true);
+                }
+
+                BigDecimal b = range.getB();
+                if (b != null) {
+                    ec.addAttr(eg, "end", getStringValue(b), true);
+                }
+            }
+
+            String moperator = mstation.getOperator();
+            if (moperator != null) {
+                ec.addAttr(eg, "operator", moperator, true);
+            }
+
+            TimeInterval tinterval = mstation.getObservationTimerange();
+            if (tinterval != null) {
+                Date tstart = tinterval.getStartTime();
+                if (tstart != null) {
+                    ec.addAttr(eg, "starttime", DATE_FORMAT.format(tstart),
+                            true);
+                }
+                Date tstop = tinterval.getStopTime();
+                if (tstop != null) {
+                    ec.addAttr(eg, "stoptime", DATE_FORMAT.format(tstop),
+                            true);
+                }
+            }
+
+            String gaugename= mstation.getGaugeName();
+
+            if (gaugename != null) {
+                Element egauge = ec.create("gauge");
+                ec.addAttr(egauge, "name", gaugename, true);
+                eg.appendChild(egauge);
+            }
+
+            egs.appendChild(eg);
+        }
+
+        this.riverele.appendChild(egs);
+
+        return result;
+    }
+
+}

http://dive4elements.wald.intevation.org