view flys-artifacts/src/main/java/de/intevation/flys/exports/ATExporter.java @ 2792:fe987587ebc9

Merged revisions 4539-4540,4543,4545-4546 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r4539 | teichmann | 2012-05-27 20:02:13 +0200 (So, 27 Mai 2012) | 1 line FixA: Added forgotten csv/report facets/generators to conf. ........ r4540 | teichmann | 2012-05-27 20:11:31 +0200 (So, 27 Mai 2012) | 1 line FixA: Fixed class cast bug in report facet. ........ r4543 | teichmann | 2012-05-28 20:35:01 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Added facet to return delta w/t as CSV ........ r4545 | teichmann | 2012-05-28 22:59:27 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Made Delta W/t calculation finally work ........ r4546 | teichmann | 2012-05-28 23:34:24 +0200 (Mo, 28 Mai 2012) | 1 line FixA: corrected fitting (Q->W instead W->Q). ........ flys-artifacts/tags/2.7@4547 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 29 May 2012 04:58:29 +0000
parents 0318fa6f0844
children 118fe1cc8cc8
line wrap: on
line source
package de.intevation.flys.exports;

import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;

import org.w3c.dom.Document;

import org.apache.log4j.Logger;

import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.CallContext;

import de.intevation.artifactdatabase.state.ArtifactAndFacet;
import de.intevation.artifactdatabase.state.Settings;

import de.intevation.flys.artifacts.FLYSArtifact;

import de.intevation.flys.artifacts.model.WQ;

import de.intevation.flys.utils.FLYSUtils;


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 FLYSArtifact master;

    public ATExporter() {
    }

    @Override
    public void init(Document request, OutputStream out, CallContext context) {
        this.context = context;
        this.out     = out;
    }

    @Override
    public void setMasterArtifact(Artifact master) {
        this.master = (FLYSArtifact) master;
    }

    @Override
    public void doOut(
        ArtifactAndFacet artifactf,
        Document attr,
        boolean  visible
    ) {
        data = (WQ)artifactf.getData(context);
    }

    @Override
    public void generate() throws IOException {

        if (data == null) {
            logger.debug("no W/Q data");
            return;
        }

        ATWriter at;
        try {
            at = new ATWriter(data);
        }
        catch (IllegalArgumentException iae) {
            logger.error("creating ATWriter failed", iae);
            throw new IOException(iae);
        }

        String   river = FLYSUtils.getRiver(master).getName();
        double[] kms   = FLYSUtils.getLocations(master);

        at.write(
            new OutputStreamWriter(out, DEFAULT_ENCODING),
            context.getMeta(),
            river,
            kms[0]);
    }


    /**
     * 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 :

http://dive4elements.wald.intevation.org