/*
 *
 * This file defines objects related to user options.  See Sub-Section 2.8.2 of
 * the Milestone 6 requirements
 *
 * This sub-section may be promoted to a 2.X level requirements section, as the
 * requirements and model are refined.  This is an example of where the model
 * may be better organized than the requirements.  I.e., having options as a
 * major file in the model suggests that options might be promoted from the
 * 'Preferences ..."  command on the 'Edit' menu, to a top-level menu of its
 * own.  This refinement in fact happens as the Milestone 6 example evolves to
 * the Milestone 8 example.  See also the comments about this in the edit.java
 * model file.
 *
 */


/**
 * Derived from Section 2.7 of the requirements.
 */
abstract class UserOptions {
    TimesAndDatesOptions timesAndDatesOptions;
    ViewingOptions viewingOptions;
    AdvancedOptions advancedOptions;
}

/**
 * To be derived from Section 2.8.3 of the requirements.
 */
abstract class TimesAndDatesOptions {}

/**
 * Derived from Section 2.8.4 of the requirements, with further work clearly
 * necessary.
 */
abstract class ViewingOptions {
    int listLength;
    /* More to come ... */
}

/**
 * Derived from Section 2.8.5 of the requirements, withe further work clearly
 * necessary.
 */
abstract class AdvancedOptions {}

/**
 * The default global options in the Calendar Tool workspace.  Structure TBD.
 */
abstract class GlobalOptions {}