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