Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveExporter.java @ 391:5d6988836f01
Added an exporter to export the computed data of a duration curve.
flys-artifacts/trunk@1814 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 03 May 2011 17:37:56 +0000 |
parents | |
children | 340dc41a7ea3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveExporter.java Tue May 03 17:37:56 2011 +0000 @@ -0,0 +1,70 @@ +package de.intevation.flys.exports; + +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +import org.w3c.dom.Document; + +import org.apache.log4j.Logger; + +import au.com.bytecode.opencsv.CSVWriter; + +import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.CallContext; + +import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.model.WQDay; + + +/** + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class DurationCurveExporter extends AbstractExporter { + + /** The logger used in this exporter.*/ + private static Logger logger = Logger.getLogger(WaterlevelExporter.class); + + + /** The storage that contains all WQKms objects for the different facets.*/ + protected List<WQDay> data; + + + public void init(Document request, OutputStream out, CallContext context) { + logger.debug("DurationCurveExporter.init"); + + super.init(request, out, context); + + this.data = new ArrayList<WQDay>(); + } + + + protected void addData(Artifact artifact) { + WINFOArtifact winfoArtifact = (WINFOArtifact) artifact; + data.add(winfoArtifact.getDurationCurveData()); + } + + + protected void writeCSVData(CSVWriter writer) { + logger.info("DurationCurveExporter.writeData"); + + for (WQDay wqday: data) { + wQDay2CSV(writer, wqday); + } + } + + + protected void wQDay2CSV(CSVWriter writer, WQDay wqday) { + logger.debug("DurationCurveExporter.wQDay2CSV"); + + int size = wqday.size(); + + for (int i = 0; i < size; i ++) { + writer.writeNext(new String[] { + Double.toString(wqday.getW(i)), + Double.toString(wqday.getQ(i)), + Double.toString(wqday.getDay(i)) + }); + } + } +}