view artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java @ 6676:202ac69e0db1

Cosmetics, docs, imports.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 26 Jul 2013 12:55:34 +0200
parents 368db84f1241
children 09e70f01ed1e
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.IOException;

import java.text.NumberFormat;

import org.w3c.dom.Document;

import org.apache.log4j.Logger;

import org.dive4elements.artifacts.CallContext;

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.utils.Formatter;

import au.com.bytecode.opencsv.CSVWriter;


/** Do CSV export for sediment load calculations (will also be shown in
 * client). */
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 :

http://dive4elements.wald.intevation.org