01: import java.awt.*; 02: import java.awt.geom.*; 03: import java.io.*; 04: 05: /** 06: An edge in a graph. 07: */ 08: public interface Edge extends Serializable, Cloneable 09: { 10: /** 11: Draw the edge. 12: @param g2 the graphics context 13: */ 14: void draw(Graphics2D g2); 15: 16: /** 17: Tests whether the edge contains a point. 18: @param aPoint the point to test 19: @return true if this edge contains aPoint 20: */ 21: boolean contains(Point2D aPoint); 22: 23: /** 24: Connects this edge to two nodes. 25: @param aStart the starting node 26: @param anEnd the ending node 27: */ 28: void connect(Node aStart, Node anEnd); 29: 30: /** 31: Gets the starting node. 32: @return the starting node 33: */ 34: Node getStart(); 35: 36: /** 37: Gets the ending node. 38: @return the ending node 39: */ 40: Node getEnd(); 41: 42: /** 43: Gets the points at which this edge is connected to 44: its nodes. 45: @return a line joining the two connection points 46: */ 47: Line2D getConnectionPoints(); 48: 49: /** 50: Gets the smallest rectangle that bounds this edge. 51: The bounding rectangle contains all labels. 52: @return the bounding rectangle 53: */ 54: Rectangle2D getBounds(Graphics2D g2); 55: 56: Object clone(); 57: } 58: