    001    package org.maltparser.core.syntaxgraph.node;
    002
    003    import java.util.SortedSet;
    004
    005    import org.maltparser.core.exception.MaltChainedException;
    006    import org.maltparser.core.syntaxgraph.headrules.HeadRules;
    007
    008    public interface NonTerminalNode extends PhraseStructureNode {
    009            public TokenNode identifyHead(HeadRules headRules) throws MaltChainedException;
    010            public TokenNode getLexicalHead(HeadRules headRules) throws MaltChainedException;
    011            public TokenNode getLexicalHead() throws MaltChainedException;
    012            public PhraseStructureNode getHeadChild(HeadRules headRules) throws MaltChainedException;
    013            public PhraseStructureNode getHeadChild() throws MaltChainedException;
    014            public SortedSet<PhraseStructureNode> getChildren();
    015            public PhraseStructureNode getChild(int index);
    016            public PhraseStructureNode getLeftChild();
    017            public PhraseStructureNode getRightChild();
    018            public int nChildren();
    019            public boolean hasNonTerminalChildren();
    020            public boolean hasTerminalChildren();
    021            public int getHeight();
    022            public boolean isContinuous();
    023            public boolean isContinuousExcludeTerminalsAttachToRoot();
    024            //public void reArrangeChildrenAccordingToLeftAndRightProperDesendant() throws MaltChainedException;
    025    }