/*
* @(#)Edge.java 1.0 03-JUL-04
*
* Copyright (c) 2001-2004 Gaudenz Alder
*
*/
package org.jgraph.graph;
import java.io.Serializable;
import java.util.List;
/**
* Defines the requirements for an object that represents an Edge in a
* GraphModel.
*
* @version 1.0 1/1/02
* @author Gaudenz Alder
*/
@SuppressWarnings ( "all" )
public interface Edge extends GraphCell {
/**
* Returns the source of the edge.
*/
Object getSource();
/**
* Returns the target of the edge.
*/
Object getTarget();
/**
* Sets the source of the edge.
*/
void setSource(Object port);
/**
* Returns the target of <code>edge</code>.
*/
void setTarget(Object port);
//
// Routing
//
public static interface Routing extends Serializable {
public static final int NO_PREFERENCE = -1;
/**
* Returns the points to be used for the edge.
* @param cache TODO
* @param edge
* The edge view to route the points for.
*/
public List route(GraphLayoutCache cache, EdgeView edge);
/**
* Returns the preferred line style for this routing. A return value of
* {@link #NO_PREFERENCE} means no preference.
*/
public int getPreferredLineStyle(EdgeView edge);
}
}