001package org.maltparser.core.syntaxgraph.reader; 002 003import java.io.InputStream; 004import java.io.InputStreamReader; 005import java.net.URL; 006 007import org.maltparser.core.exception.MaltChainedException; 008import org.maltparser.core.io.dataformat.DataFormatInstance; 009import org.maltparser.core.syntaxgraph.TokenStructure; 010 011/** 012* 013* 014* @author Johan Hall 015*/ 016public 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}