001package org.maltparser.core.syntaxgraph;
002
003import org.maltparser.core.exception.MaltChainedException;
004import org.maltparser.core.symbol.SymbolTableHandler;
005/**
006*
007*
008* @author Johan Hall
009*/
010public interface LabeledStructure {
011        /**
012         * Returns the symbol table handler. 
013         * 
014         * @return the symbol table handler. 
015         */
016        public SymbolTableHandler getSymbolTables();
017        /**
018         * Sets the symbol table handler.
019         * 
020         * @param symbolTables a symbol table handler.
021         */
022        public void setSymbolTables(SymbolTableHandler symbolTables);
023        /**
024         * Adds a label <i>label</i> to the graph element <i>element</i>
025         * 
026         * @param element a graph element <i>element</i> (a node or a edge).
027         * @param tableName the name of the symbol table.
028         * @param label the string value of the label.
029         * @throws MaltChainedException
030         */
031        public void addLabel(Element element, String tableName, String label) throws MaltChainedException;
032        /**
033         * Checks out a new label set from the structure.
034         * 
035         * @return a new label set.
036         * @throws MaltChainedException
037         */
038        public LabelSet checkOutNewLabelSet() throws MaltChainedException;
039        /**
040         * Checks in a label set. 
041         * 
042         * @param labelSet a label set. 
043         * @throws MaltChainedException
044         */
045        public void checkInLabelSet(LabelSet labelSet) throws MaltChainedException;
046        /**
047         * Resets the structure.
048         * 
049         * @throws MaltChainedException
050         */
051        public void clear() throws MaltChainedException;
052}