/****
*
* 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;
}