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: