view flys-artifacts/src/main/java/de/intevation/flys/exports/OutGenerator.java @ 412:046bd86ae41d

Improved the OutGenerator interface to set a master artifact for the out generation. flys-artifacts/trunk@1874 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 10 May 2011 10:26:26 +0000
parents 8830eecad69e
children 45cd58a2a2bb
line wrap: on
line source
package de.intevation.flys.exports;

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

import org.w3c.dom.Document;

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


/**
 * An OutGenerator is used to create a collected outputs of a list of Artifacts.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public interface OutGenerator {

    /**
     * Initializes the OutGenerator with meta information which are necessary
     * for the output generation.
     *
     * @param request The incomding request document.
     * @param out     The output stream.
     * @param context The CallContext that provides further information and
     * objects used for the output generation.
     */
    void init(Document request, OutputStream out, CallContext context);

    /**
     * This method is used to tell the OutGenerator which artifact is the master
     * artifact which is used for special operations.
     *
     * @param master The master artifact.
     */
    void setMasterArtifact(Artifact master);

    /**
     * Creates the output of an Artifact and appends that single output to the
     * total output.
     *
     * @param artifact The artifact that provides information and data for the
     * single output.
     * @param attr A document that might contain some attributes used while
     * producing the output.
     */
    void doOut(Artifact artifact, String facet, Document attr);

    /**
     * Writes the collected output of all artifacts specified in the
     * <i>request</i> (see init()) document to the OutputStream <i>out</i> (see
     * init()).
     */
    void generate() throws IOException;
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org