view flys-artifacts/src/main/java/de/intevation/flys/exports/sq/SQRelationExporter.java @ 3227:ed07dd55f487

Fixed various bugs (package declarations, moved classes to correct places). flys-artifacts/trunk@4854 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 03 Jul 2012 08:46:14 +0000
parents 5c87d4ca1bd3
children 56f62b5209f5
line wrap: on
line source
package de.intevation.flys.exports.sq;

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.CallContext;

import de.intevation.flys.artifacts.model.CalculationResult;
import de.intevation.flys.exports.AbstractExporter;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class SQRelationExporter extends AbstractExporter {

    /** Private logger. */
    private static final Logger logger =
        Logger.getLogger(SQRelationExporter.class);


    public static final String CSV_PARAMETER =
        "export.sqrelation.csv.header.parameter";

    public static final String CSV_STATION =
        "export.sqrelation.csv.header.station";

    public static final String CSV_KM =
        "export.sqrelation.csv.header.km";

    public static final String CSV_FUNCTION =
        "export.sqrelation.csv.header.function";

    public static final String CSV_GAUGE =
        "export.sqrelation.csv.header.gauge";

    public static final String CSV_COEFF_A =
        "export.sqrelation.csv.header.coeff.a";

    public static final String CSV_COEFF_B =
        "export.sqrelation.csv.header.coeff.b";

    public static final String CSV_COEFF_Q =
        "export.sqrelation.csv.header.coeff.q";

    public static final String CSV_COEFF_R =
        "export.sqrelation.csv.header.coeff.r";

    public static final String CSV_N_TOTAL =
        "export.sqrelation.csv.header.n.total";

    public static final String CSV_N_OUTLIERS =
        "export.sqrelation.csv.header.n.outliers";

    public static final String CSV_C_DUAN =
        "export.sqrelation.csv.header.c.duan";

    public static final String CSV_C_FERGUSON =
        "export.sqrelation.csv.header.c.ferguson";

    public static final String CSV_VARIANCE =
        "export.sqrelation.csv.header.variance";


    // TODO use correct model class here!
    protected List<Object[]> data;


    public void init(Document request, OutputStream out, CallContext cc) {
        super.init(request, out, cc);
        data = new ArrayList<Object[]>();
    }


    @Override
    protected void addData(Object d) {
        if (d instanceof CalculationResult) {
            d = ((CalculationResult) d).getData();

            if (d instanceof Object[]) {
                logger.debug("Add new data of type XXX");
                data.add((Object[]) d);
            }
        }
    }


    @Override
    protected void writeCSVData(CSVWriter writer) {
        logger.debug("writeCSVData");
        logger.error("NOT IMPLEMENTED: writeCSVData");

        logger.debug("CSV gets " + data.size() + " rows.");

        writeCSVHeader(writer);

        for (Object[] d: data) {
            data2CSV(writer, d);
        }
    }


    protected void writeCSVHeader(CSVWriter writer) {
        writer.writeNext(new String[] {
            msg(CSV_PARAMETER, CSV_PARAMETER),
            msg(CSV_STATION, CSV_STATION),
            msg(CSV_KM        , CSV_KM),
            msg(CSV_FUNCTION  , CSV_FUNCTION),
            msg(CSV_GAUGE     , CSV_GAUGE),
            msg(CSV_COEFF_A   , CSV_COEFF_A),
            msg(CSV_COEFF_B   , CSV_COEFF_B),
            msg(CSV_COEFF_Q   , CSV_COEFF_Q),
            msg(CSV_COEFF_R   , CSV_COEFF_R),
            msg(CSV_N_TOTAL   , CSV_N_TOTAL),
            msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS),
            msg(CSV_C_DUAN    , CSV_C_DUAN),
            msg(CSV_C_FERGUSON, CSV_C_FERGUSON),
            msg(CSV_VARIANCE  , CSV_VARIANCE)
        });
    }


    protected void data2CSV(CSVWriter writer, Object[] mData) {
        logger.debug("data2CSV");
        logger.error("NOT IMPLEMENTED: data2CSV");
    }


    @Override
    protected void writePDF(OutputStream out) {
        logger.debug("writePDF");
        logger.error("NOT IMPLEMENTED: writePDF");
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org