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    }