    001    package org.maltparser.core.syntaxgraph;
    002
    003    import java.util.Set;
    004
    005    import org.maltparser.core.exception.MaltChainedException;
    006    import org.maltparser.core.syntaxgraph.edge.Edge;
    007    import org.maltparser.core.syntaxgraph.node.PhraseStructureNode;
    008    /**
    009    *
    010    *
    011    * @author Johan Hall
    012    */
    013    public interface PhraseStructure extends TokenStructure, SecEdgeStructure {
    014            public PhraseStructureNode addTerminalNode() throws MaltChainedException;
    015            public PhraseStructureNode addTerminalNode(int index) throws MaltChainedException;
    016            public PhraseStructureNode getTerminalNode(int index);
    017            public int nTerminalNode();
    018            public Edge addPhraseStructureEdge(PhraseStructureNode source, PhraseStructureNode target) throws MaltChainedException;
    019            public void removePhraseStructureEdge(PhraseStructureNode source, PhraseStructureNode target) throws MaltChainedException;
    020            public int nEdges();
    021            public PhraseStructureNode getPhraseStructureRoot();
    022            public PhraseStructureNode getNonTerminalNode(int index) throws MaltChainedException;
    023            public PhraseStructureNode addNonTerminalNode() throws MaltChainedException;
    024            public PhraseStructureNode addNonTerminalNode(int index) throws MaltChainedException;
    025            public int getHighestNonTerminalIndex();
    026            public Set<Integer> getNonTerminalIndices();
    027            public boolean hasNonTerminals();
    028            public int nNonTerminals();
    029            public boolean isContinuous();
    030            public boolean isContinuousExcludeTerminalsAttachToRoot();
    031    //      public void makeContinuous() throws MaltChainedException;
    032    }