001 package org.maltparser.core.syntaxgraph.reader;
002
003 import java.io.InputStream;
004 import java.io.InputStreamReader;
005 import java.net.URL;
006
007 import org.maltparser.core.exception.MaltChainedException;
008 import org.maltparser.core.io.dataformat.DataFormatInstance;
009 import org.maltparser.core.syntaxgraph.TokenStructure;
010
011 /**
012 *
013 *
014 * @author Johan Hall
015 */
016 public interface SyntaxGraphReader {
017 /**
018 * Opens a file for read only
019 *
020 * @param fileName the file name of the file
021 * @param charsetName the name of the character encoding set
022 * @throws MaltChainedException
023 */
024 public void open(String fileName, String charsetName) throws MaltChainedException;
025 /**
026 * Opens an URL for read only
027 *
028 * @param url the URL of the resource
029 * @param charsetName the name of the character encoding set
030 * @throws MaltChainedException
031 */
032 public void open(URL url, String charsetName) throws MaltChainedException;
033 /**
034 * Opens an input stream
035 *
036 * @param is an input stream
037 * @param charsetName the name of the character encoding set
038 * @throws MaltChainedException
039 */
040 public void open(InputStream is, String charsetName) throws MaltChainedException;
041 /**
042 * Cause the syntax graph reader to read the beginning of the file (such as header information)
043 *
044 * @throws MaltChainedException
045 */
046 public void readProlog() throws MaltChainedException;
047
048 /**
049 * Reads a sentence (token structure, dependency structure or/and phrase structure)
050 *
051 * @param syntaxGraph a syntax graph (token structure, dependency structure or/and phrase structure)
052 * @return true if there is more sentences to be processed, otherwise false.
053 * @throws MaltChainedException
054 */
055 public boolean readSentence(TokenStructure syntaxGraph) throws MaltChainedException;
056 /**
057 * Reads the end of the file, after all sentences have been processed,
058 *
059 * @throws MaltChainedException
060 */
061 public void readEpilog() throws MaltChainedException;
062 /**
063 * Returns the current number of the sentence.
064 *
065 * @return the current number of the sentence.
066 * @throws MaltChainedException
067 */
068 public int getSentenceCount() throws MaltChainedException;
069 /**
070 * Returns the input data format instance
071 *
072 * @return the input data format instance
073 */
074 public DataFormatInstance getDataFormatInstance();
075 /**
076 * Sets the input data format instance
077 *
078 * @param dataFormatInstance an input data format instance
079 */
080 public void setDataFormatInstance(DataFormatInstance dataFormatInstance);
081 /**
082 * Returns a string representation of the reader specific options.
083 *
084 * @return a string representation of the reader specific options.
085 */
086 public String getOptions();
087 /**
088 * Sets the reader specific options.
089 *
090 * @param optionString a string representation of the reader specific options
091 * @throws MaltChainedException
092 */
093 public void setOptions(String optionString) throws MaltChainedException;
094 /**
095 * Closes the file or the input stream.
096 *
097 * @throws MaltChainedException
098 */
099 public void close() throws MaltChainedException;
100
101 public int getNIterations();
102 public void setNIterations(int iterations);
103 public int getIterationCounter();
104 }