001    package org.maltparser.core.syntaxgraph.edge;
002    
003    import org.maltparser.core.exception.MaltChainedException;
004    import org.maltparser.core.syntaxgraph.Element;
005    import org.maltparser.core.syntaxgraph.node.Node;
006    /**
007    *
008    *
009    * @author Johan Hall
010    */
011    public interface Edge extends Element {
012            public static final int DEPENDENCY_EDGE  = 1;
013            public static final int PHRASE_STRUCTURE_EDGE = 2;
014            public static final int SECONDARY_EDGE = 3;
015            
016            /**
017             * Sets the edge with a source node, a target node and a type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE
018             * or SECONDARY_EDGE). 
019             * 
020             * @param source a source node
021             * @param target a target node
022             * @param type a type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE)
023             * @throws MaltChainedException
024             */
025            public void setEdge(Node source, Node target, int type) throws MaltChainedException;
026            /**
027             * Returns the source node of the edge.
028             * 
029             * @return the source node of the edge.
030             */
031            public Node getSource();
032            /**
033             * Returns the target node of the edge.
034             * 
035             * @return the target node of the edge.
036             */
037            public Node getTarget();
038            /**
039             * Returns the edge type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE).
040             * 
041             * @return the edge type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE).
042             */
043            public int getType();
044    }