Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java @ 6668:368db84f1241
issue1416: Move a stub new SedimentLoadExporter in place.
SedimentLoadExporter: New stub for exporter.
minfo.xml: Register csv facet, declare new out.
conf.xml: Register exporter for new out.
SedimentLoadCalculate: Create a data facet to become active in new out.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 26 Jul 2013 10:45:47 +0200 |
parents | |
children | 202ac69e0db1 |
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.minfo; import java.util.LinkedList; import java.util.List; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.IOException; import java.text.NumberFormat; 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.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadResult; import org.dive4elements.river.exports.AbstractExporter; import org.dive4elements.river.model.River; import org.dive4elements.river.utils.RiverUtils; import org.dive4elements.river.utils.Formatter; import org.dive4elements.river.artifacts.access.RangeAccess; import au.com.bytecode.opencsv.CSVWriter; public class SedimentLoadExporter extends AbstractExporter { /** Private logger. */ private static Logger logger = Logger.getLogger(SedimentLoadExporter.class); private SedimentLoadResult[] results; public SedimentLoadExporter() { } /** Trivial init. */ @Override public void init(Document request, OutputStream out, CallContext context) { super.init(request, out, context); logger.debug("init"); results = new SedimentLoadResult[0]; } /** Process all stored data and write csv. */ @Override protected void writeCSVData(CSVWriter writer) throws IOException { writeCSVHeader(writer); NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); /* writer.writeNext(new String[] { */ } /** Writes i18ned header for csv file/stream. */ protected void writeCSVHeader(CSVWriter writer) { logger.debug("writeCSVHeader()"); List<String> header = new LinkedList<String>(); if (results != null) { /*header.add(msg(CSV_HEADER_KM, "km")); header.add(msg(CSV_HEADER_VAL, "m"));*/ } writer.writeNext(header.toArray(new String[header.size()])); } /** Store data internally, accepting only SedimentLoadResults[] in * calculationresults data. */ @Override protected void addData(Object data) { if (!(data instanceof CalculationResult)) { logger.warn("Invalid data type."); return; } Object[] d = (Object[])((CalculationResult)data).getData(); if (!(d instanceof SedimentLoadResult[])) { logger.warn("Invalid result object."); return; } logger.debug("addData: Data added."); results = (SedimentLoadResult[])d; } @Override protected void writePDF(OutputStream out) { logger.warn("Not implemented."); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :