tim@335: package de.intevation.gnv.state;
tim@335: 
tim@335: import java.io.Serializable;
sascha@779: 
tim@335: import java.util.Collection;
ingo@626: import java.util.List;
tim@335: 
tim@335: /**
ingo@796:  * This is the interface description of an <code>OutputMode</code>. The
ingo@796:  * methods defined here retrieve some basic information for an output. An output
ingo@796:  * can be chart, histogram, statistic, csv, odv and so on.
ingo@796:  *
sascha@780:  * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a>
ingo@796:  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
tim@335:  */
tim@335: public interface OutputMode extends Serializable {
tim@335: 
ingo@796:     /**
ingo@796:      * Retrieve the name of this output mode.
ingo@796:      *
ingo@796:      * @return the name of this output mode.
ingo@796:      */
tim@335:     public String getName();
tim@335: 
ingo@796:     /**
ingo@796:      * Retrieve the description of an output.
ingo@796:      *
ingo@796:      * @return the description.
ingo@796:      */
tim@335:     public String getDescription();
tim@335: 
ingo@796:     /**
ingo@796:      * Retrieve the mimetype used for the output.
ingo@796:      *
ingo@796:      * @return the mimetype.
ingo@796:      */
tim@335:     public String getMimeType();
tim@335: 
ingo@796:     /**
ingo@796:      * Retrieve a list of optional InputValue objects the user is able to
ingo@796:      * adjust.
ingo@796:      *
ingo@796:      * @return optional input parameters.
ingo@796:      */
tim@335:     public Collection<InputValue> getInputParameters();
ingo@626: 
ingo@796:     /**
ingo@796:      * Retrieve a list of export modes this output can be exported to.
ingo@796:      *
ingo@796:      * @return some export modes.
ingo@796:      */
ingo@626:     public List<ExportMode> getExportModes();
tim@335: }
sascha@836: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :