/**** * * Module CalendarDB defines the major database objects of the calendar system * as well as the objects that define the underlying calendar structure. The * core object of the calendar system is the UserCalendar, which is modeled as * a collection of scheduled items. The calendar structure of years, months, * weeks, and days is not directly modeled in the UserCalendar. These * structures are computed views that are derived from the underlying scheduled * item collection. The operations in the View module are the ones that * compute the these views. * */ import java.util.Collection; /** * The CalendarDB is the top-level object for the Calendar Tool. The * first component is the list of UserCalendars for all registered users. * The next three components are the registered UserDB, the user GroupDB, * and the LocationDB. The Options component is the set of calendar * options common by default for all users, both registered and * non-registered. The UserWorkSpace component is active calendars upon * which the current user is working. * * objects that are available for the user to view and edit. There is a draft UML diagram of the Calendar Tool object * hierarchy, of which CalendarDB is the topmost object. */ abstract class CalendarDB { Collection calendars; UserDB udb; GroupDB gdb; GlobalOptions options; } /** * A user calendar is named, with its own set of options. It extends the * Calendar object, which contains the collection of scheduled items. */ abstract class UserCalendar extends Calendar { String userName; UserOptions options; }