All key contracts of the framework are specified using Java interfaces, for example the Figure interface.
If an interface specifies support for event listeners, then the framework provides an abstract class that contains the boiler-plate code for handling the event listeners and firing events, e.g. the AbstractFigure abstract class.
In order to provide a break-down of reusable building blocks, there can be intermediate abstract classes that subclass from the top-level abstract class. Such as AbstractAttributedFigure wich is a subclass of AbstractFigure.
Abstract classes that contain code intended for reuse have the prefix ‹Abstract›.
And finally, the framework provides one or multiple default implementations of each interface. If there are multiple default implementations, then they are given concrete names like RectangleFigure, EllipseFigure, LineFigure. If there is only one default implementation, it has the same name as the interface with the prefix ‹Default›, e.g. DefaultDrawingView.
Methods that set and get properties use the JavaBeans naming conventions. The prefix ‹set› is used for methods that set a property value, ‹is› is used for methods that get a boolean property, ‹get› is used for methods that get other properties.
Methods that change the state of an object are expected to inform listener objects about these changes. Sometimes this is not desired, e.g. when a large number of set operations is performed consecutively, it is better to inform the listener only after all these operations have finished. The prefix ‹basic› is used for methods that explicitly don't inform listeners about a state change.