    001    package org.maltparser.core.syntaxgraph.writer;
    002
    003    import java.io.OutputStream;
    004    import java.io.OutputStreamWriter;
    005
    006    import org.maltparser.core.exception.MaltChainedException;
    007    import org.maltparser.core.io.dataformat.DataFormatInstance;
    008    import org.maltparser.core.syntaxgraph.TokenStructure;
    009    /**
    010    *
    011    *
    012    * @author Johan Hall
    013    */
    014    public interface SyntaxGraphWriter {
    015            /**
    016             * Opens a file for writing
    017             *
    018             * @param fileName      the file name of the file
    019             * @param charsetName   the name of the character encoding set
    020             * @throws MaltChainedException
    021             */
    022            public void open(String fileName, String charsetName) throws MaltChainedException;
    023            /**
    024             * Opens an output stream
    025             *
    026             * @param os an output stream
    027             * @param charsetName the name of the character encoding set
    028             * @throws MaltChainedException
    029             */
    030            public void open(OutputStream os, String charsetName) throws MaltChainedException;
    031            /**
    032             * Cause the syntax graph writer to write the beginning of the file (such as header information)
    033             *
    034             * @throws MaltChainedException
    035             */
    036            public void writeProlog() throws MaltChainedException;
    037            /**
    038             * Writes a sentence (token structure, dependency structure or/and phrase structure)
    039             *
    040             * @param syntaxGraph a syntax graph (token structure, dependency structure or/and phrase structure)
    041             * @throws MaltChainedException
    042             */
    043            public void writeSentence(TokenStructure syntaxGraph) throws MaltChainedException;
    044            /**
    045             * Writes the end of the file
    046             *
    047             * @throws MaltChainedException
    048             */
    049            public void writeEpilog() throws MaltChainedException;
    050            /**
    051             * Returns the output data format instance
    052             *
    053             * @return the output data format instance
    054             */
    055            public DataFormatInstance getDataFormatInstance();
    056            /**
    057             * Sets the output data format instance
    058             *
    059             * @param dataFormatInstance an output data format instance
    060             */
    061            public void setDataFormatInstance(DataFormatInstance dataFormatInstance);
    062            /**
    063             * Returns a string representation of the writer specific options.
    064             *
    065             * @return a string representation of the writer specific options.
    066             */
    067            public String getOptions();
    068            /**
    069             * Sets the writer specific options.
    070             *
    071             * @param optionString a string representation of the writer specific options
    072             * @throws MaltChainedException
    073             */
    074            public void setOptions(String optionString) throws MaltChainedException;
    075            /**
    076             * Closes the file or the output stream.
    077             *
    078             * @throws MaltChainedException
    079             */
    080            public void close() throws MaltChainedException;
    081    }