Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java @ 5831:bd047b71ab37
Repaired internal references
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:06:39 +0200 |
parents | flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MeasurementStationInfoService.java@57f802db5c5a |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java Thu Apr 25 12:06:39 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; + } + +}