package edit;
import options.UserOptions;


/**
 * Class Edit is derived from 2.8 of the requirements, which in turn derives
 * from the commands on the 'Edit' menu.  In this simple initial model, almost
 * all of the generic editing functionality is modeled as operations.  There is
 * one data field for the 'Preferences ...' menu item, described in Sections
 * 2.8.2 through 2.8.5 of the requirements.
 *
 * In Milestone 6, there is a nomenclature problem with the terms "Preferences"
 * and "Options".  These would appear to be two words that describe the same
 * data.  As Milestone 6 is refined to Milestone 8, we'll see how this problem
 * is resolved by choosing the term "Options", and promoting the
 * 'Edit->Preferences' menu item to a top-level menu.  See also the comments
 * about this in the options.java model file.
 *
 * This simple sketch is fine for Milestone 6, since this aspect of editing is
 * a lower priority compared to the other aspects of the requirements and model.
 */

abstract class Edit {

    abstract void undo();
    abstract void redo();
    abstract void repeat();
    abstract void cut();
    abstract void copy();
    abstract void past();
    abstract void delete();
    abstract void selectAll();
    abstract void find();

    UserOptions preferences;
}