Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/ATExporter.java @ 7724:c3a12d77c16b
Fix doOut for Porosity sublayer
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 20 Dec 2013 18:50:55 +0100 |
parents | 41567bf1e131 |
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.exports; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.IOException; import org.w3c.dom.Document; import org.apache.log4j.Logger; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifactdatabase.state.Settings; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.model.WQ; import org.dive4elements.river.collections.D4EArtifactCollection; import org.dive4elements.river.model.Gauge; import org.dive4elements.river.model.River; import org.dive4elements.river.model.TimeInterval; import org.dive4elements.river.themes.ThemeDocument; import org.dive4elements.river.utils.RiverUtils; import org.dive4elements.river.artifacts.access.RangeAccess; public class ATExporter implements OutGenerator { private static Logger logger = Logger.getLogger(ATExporter.class); public static final String DEFAULT_ENCODING = "UTF-8"; protected WQ data; protected CallContext context; protected OutputStream out; protected D4EArtifact master; protected String outName; protected D4EArtifactCollection collection; public ATExporter() { } @Override public void setup(Object config) { logger.debug("ATExporter.setup"); } @Override public void init(String outName, Document request, OutputStream out, CallContext context) { this.outName = outName; this.context = context; this.out = out; } @Override public void setMasterArtifact(Artifact master) { this.master = (D4EArtifact) master; } @Override public void setCollection(D4EArtifactCollection collection) { this.collection = collection; } @Override public void doOut( ArtifactAndFacet artifactf, ThemeDocument attr, boolean visible ) { data = (WQ)artifactf.getData(context); } @Override public void generate() throws IOException { if (data == null) { logger.debug("no W/Q data"); return; } River river = RiverUtils.getRiver(master); RangeAccess rangeAccess = new RangeAccess(master); double[] kms = rangeAccess.getLocations(); Gauge gauge = river.determineGaugeByPosition(kms[0]); if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) { // at gauge. TimeInterval interval = gauge.fetchMasterDischargeTable().getTimeInterval(); ATWriter.write( data, new OutputStreamWriter(out, DEFAULT_ENCODING), context.getMeta(), river.getName(), kms[0], gauge.getName(), gauge.getDatum(), interval.getStartTime(), river.getWstUnit().getName()); } else { // at km ATWriter.write( data, new OutputStreamWriter(out), context.getMeta(), river.getName(), kms[0], null, null, null, river.getWstUnit().getName()); } } /** * Returns an instance of <i>EmptySettings</i> currently! * * @return an instance of <i>EmptySettings</i>. */ @Override public Settings getSettings() { return new EmptySettings(); } /** * This method is not implemented! * * @param settings A settings object. */ @Override public void setSettings(Settings settings) { // do nothing here } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :