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