Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/services/MeasurementStationInfoService.java @ 8148:eb48b244921d
The rest is silence.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 27 Aug 2014 19:52:51 +0200 |
parents | af13ceeba52a |
children | e4606eae8ea5 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ 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; } }