tim@335: package de.intevation.gnv.state;
tim@335: 
sascha@480: import de.intevation.artifacts.CallContext;
sascha@480: 
sascha@480: import de.intevation.gnv.state.exception.StateException;
sascha@480: 
tim@335: import java.io.OutputStream;
sascha@480: 
tim@335: import java.util.Collection;
tim@335: 
tim@335: import org.w3c.dom.Document;
tim@335: 
tim@335: /**
ingo@796:  * This is the interface description of an output state. Currently, there are
ingo@796:  * two methods defined:<br>
ingo@796:  * <ol>
ingo@796:  *  <li>out(): To start an output of the current state.</li>
ingo@796:  *  <li>getOutputModes(): To retrieve a list of possible output modes.</li>
ingo@796:  * </ol>
sascha@803:  *
sascha@780:  * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a>
tim@335:  */
sascha@778: public interface OutputState
sascha@480: extends          State
sascha@480: {
tim@335: 
tim@335:     /**
tim@335:      * Returns the Rendered Result of an State.
sascha@778:      *
ingo@796:      * @param format
ingo@796:      * @param inputData
ingo@796:      * @param outputStream
sascha@803:      * @param uuid
ingo@796:      * @param callContext
tim@335:      * @throws StateException
tim@335:      */
ingo@358:     public void out(
sascha@480:         Document              format,
ingo@358:         Collection<InputData> inputData,
sascha@480:         OutputStream          outputStream,
sascha@480:         String                uuid,
sascha@480:         CallContext           callContext
ingo@358:     ) throws StateException;
tim@335: 
tim@335:     /**
tim@335:      * Delivers the provided OutputModes of an State
sascha@778:      *
tim@335:      * @return the provided OutputModes of an State
tim@335:      */
tim@335:     public Collection<OutputMode> getOutputModes();
tim@335: }
sascha@836: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :