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    }