package org.maltparser.core.syntaxgraph.edge;
import org.maltparser.core.exception.MaltChainedException;
import org.maltparser.core.syntaxgraph.Element;
import org.maltparser.core.syntaxgraph.node.Node;
/**
*
*
* @author Johan Hall
*/
public interface Edge extends Element {
public static final int DEPENDENCY_EDGE = 1;
public static final int PHRASE_STRUCTURE_EDGE = 2;
public static final int SECONDARY_EDGE = 3;
/**
* Sets the edge with a source node, a target node and a type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE
* or SECONDARY_EDGE).
*
* @param source a source node
* @param target a target node
* @param type a type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE)
* @throws MaltChainedException
*/
public void setEdge(Node source, Node target, int type) throws MaltChainedException;
/**
* Returns the source node of the edge.
*
* @return the source node of the edge.
*/
public Node getSource();
/**
* Returns the target node of the edge.
*
* @return the target node of the edge.
*/
public Node getTarget();
/**
* Returns the edge type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE).
*
* @return the edge type (DEPENDENCY_EDGE, PHRASE_STRUCTURE_EDGE or SECONDARY_EDGE).
*/
public int getType();
}