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 }