001    package org.maltparser.core.syntaxgraph;
002    
003    import java.util.SortedSet;
004    
005    import org.maltparser.core.exception.MaltChainedException;
006    import org.maltparser.core.syntaxgraph.node.TokenNode;
007    
008    /**
009    *
010    *
011    * @author Johan Hall
012    */
013    public interface TokenStructure extends Structure, LabeledStructure { 
014            /**
015             * Adds a token node with index <i>n + 1</i>, where <i>n</i> is the index of the last token node. 
016             * 
017             * @return the added token node.
018             * @throws MaltChainedException
019             */
020            public TokenNode addTokenNode() throws MaltChainedException;
021            /**
022             * Adds a token node with index <i>index</i>.
023             * 
024             * @param index the index of the token node.
025             * @return the added token node.
026             */
027            public TokenNode addTokenNode(int index) throws MaltChainedException;
028            /**
029             * Returns the token node with index <i>index</i>.
030             * 
031             * @param index the index of the token node.
032             * @return a token node with index <i>index</i>.
033             * @throws MaltChainedException
034             */
035            public TokenNode getTokenNode(int index);
036            /**
037             * Returns the number of token nodes in the token structure (sentence).
038             * 
039             * @return the number of token nodes in the token structure (sentence).
040             */
041            public int nTokenNode();
042            /**
043             * Returns a sorted set of integers {s,...,n}, where each index i identifies a token node. Index <i>s</i> 
044             * is the first token node and index <i>n</i> is the last token node. 
045             * 
046             * @return a sorted set of integers {s,...,n}.
047             */
048            public SortedSet<Integer> getTokenIndices();
049            /**
050             * Returns the index of the last token node.
051             * 
052             * @return the index of the last token node.
053             */
054            public int getHighestTokenIndex();
055            /**
056             *  Returns <i>true</i> if the token structure (sentence) has any token nodes, otherwise <i>false</i>.
057             * 
058             * @return <i>true</i> if the token structure (sentence) has any token nodes, otherwise <i>false</i>.
059             */
060            public boolean hasTokens();
061            /**
062             * Returns the sentence ID
063             * 
064             * @return the sentence ID
065             */
066            public int getSentenceID();
067            /**
068             * Sets the sentence ID
069             * 
070             * @param sentenceID a sentence ID
071             */
072            public void setSentenceID(int sentenceID);
073    }