001    package org.maltparser.core.syntaxgraph;
002    
003    import org.maltparser.core.exception.MaltChainedException;
004    import org.maltparser.core.symbol.SymbolTableHandler;
005    /**
006    *
007    *
008    * @author Johan Hall
009    */
010    public 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    }