001 package org.maltparser.parser; 002 003 import org.maltparser.core.exception.MaltChainedException; 004 import org.maltparser.core.syntaxgraph.DependencyStructure; 005 import org.maltparser.parser.history.HistoryNode; 006 /** 007 * @author Johan Hall 008 * 009 */ 010 public abstract class ParserConfiguration { 011 protected HistoryNode historyNode; 012 013 014 /** 015 * Creates a parser configuration 016 */ 017 public ParserConfiguration() { 018 setHistoryNode(null); 019 } 020 021 public HistoryNode getHistoryNode() { 022 return historyNode; 023 } 024 025 public void setHistoryNode(HistoryNode historyNode) { 026 this.historyNode = historyNode; 027 } 028 029 /** 030 * Sets the dependency structure 031 * 032 * @param dependencyStructure a dependency structure 033 * @throws MaltChainedException 034 */ 035 public abstract void setDependencyGraph(DependencyStructure dependencyStructure) throws MaltChainedException; 036 /** 037 * Returns true if the parser configuration is in a terminal state, otherwise false. 038 * 039 * @return true if the parser configuration is in a terminal state, otherwise false. 040 * @throws MaltChainedException 041 */ 042 public abstract boolean isTerminalState() throws MaltChainedException; 043 /** 044 * Returns the dependency structure 045 * 046 * @return the dependency structure 047 */ 048 public abstract DependencyStructure getDependencyGraph(); 049 /** 050 * Clears the parser configuration 051 * 052 * @throws MaltChainedException 053 */ 054 public abstract void clear() throws MaltChainedException; 055 /** 056 * Initialize the parser configuration with the same state as the parameter config 057 * 058 * @param config a parser configuration 059 * @throws MaltChainedException 060 */ 061 public abstract void initialize(ParserConfiguration config) throws MaltChainedException; 062 }