01: import java.awt.*; 02: import java.awt.geom.*; 03: import java.io.*; 04: 05: /** 06: A node in a graph. 07: */ 08: public interface Node extends Serializable, Cloneable 09: { 10: /** 11: Draw the node. 12: @param g2 the graphics context 13: */ 14: void draw(Graphics2D g2); 15: 16: /** 17: Translates the node by a given amount. 18: @param dx the amount to translate in the x-direction 19: @param dy the amount to translate in the y-direction 20: */ 21: void translate(double dx, double dy); 22: 23: /** 24: Tests whether the node contains a point. 25: @param aPoint the point to test 26: @return true if this node contains aPoint 27: */ 28: boolean contains(Point2D aPoint); 29: 30: /** 31: Get the best connection point to connect this node 32: with another node. This should be a point on the boundary 33: of the shape of this node. 34: @param aPoint an exterior point that is to be joined 35: with this node 36: @return the recommended connection point 37: */ 38: Point2D getConnectionPoint(Point2D aPoint); 39: 40: /** 41: Get the bounding rectangle of the shape of this node 42: @return the bounding rectangle 43: */ 44: Rectangle2D getBounds(); 45: 46: Object clone(); 47: }