# Class AbstractUndoableEdit

java.lang.Object
javax.swing.undo.AbstractUndoableEdit

All Implemented Interfaces:
  `Serializable, UndoableEdit`

Direct Known Subclasses:
  `AbstractDocument.ElementEdit, CompoundEdit, DefaultStyledDocument.AttributeUndoableEdit, StateEdit`

public class AbstractUndoableEdit extends Object implements UndoableEdit, Serializable
An abstract implementation of `UndoableEdit`, implementing simple responses to all boolean methods in that interface.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `RedoName`
  String returned by `getRedoPresentationName`; as of Java 2 platform v1.3.1 this field is no longer used.
  `protected static final String`
  `UndoName`
  String returned by `getUndoPresentationName`; as of Java 2 platform v1.3.1 this field is no longer used.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractUndoableEdit()`
  Creates an `AbstractUndoableEdit` which defaults `hasBeenDone` and `alive` to `true`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `addEdit(UndoableEdit anEdit)`
  This default implementation returns false.
  `boolean`
  `canRedo()`
  Returns `true` if this edit is `alive` and `hasBeenDone` is `false`.
  `boolean`
  `canUndo()`
  Returns true if this edit is `alive` and `hasBeenDone` is `true`.
  `void`
  `die()`
  Sets `alive` to false.
  `String`
  `getPresentationName()`
  This default implementation returns "".
  `String`
  `getRedoPresentationName()`
  Retrieves the value from the defaults table with key `AbstractUndoableEdit.redoText` and returns that value followed by a space, followed by `getPresentationName`.
  `String`
  `getUndoPresentationName()`
  Retrieves the value from the defaults table with key `AbstractUndoableEdit.undoText` and returns that value followed by a space, followed by `getPresentationName`.
  `boolean`
  `isSignificant()`
  This default implementation returns true.
  `void`
  `redo()`
  Throws `CannotRedoException` if `canRedo` returns false.
  `boolean`
  `replaceEdit(UndoableEdit anEdit)`
  This default implementation returns false.
  `String`
  `toString()`
  Returns a string that displays and identifies this object's properties.
  `void`
  `undo()`
  Throws `CannotUndoException` if `canUndo` returns `false`.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### UndoName

    protected static final String UndoName
    String returned by `getUndoPresentationName`; as of Java 2 platform v1.3.1 this field is no longer used. This value is now localized and comes from the defaults table with key `AbstractUndoableEdit.undoText`.
    See Also:
      - `UIDefaults`
      - Constant Field Values

  - ### RedoName

    protected static final String RedoName
    String returned by `getRedoPresentationName`; as of Java 2 platform v1.3.1 this field is no longer used. This value is now localized and comes from the defaults table with key `AbstractUndoableEdit.redoText`.
    See Also:
      - `UIDefaults`
      - Constant Field Values

- ## Constructor Details

  - ### AbstractUndoableEdit

    public AbstractUndoableEdit()
    Creates an `AbstractUndoableEdit` which defaults `hasBeenDone` and `alive` to `true`.

- ## Method Details

  - ### die

    public void die()
    Sets `alive` to false. Note that this is a one way operation; dead edits cannot be resurrected. Sending `undo` or `redo` to a dead edit results in an exception being thrown.

    Typically an edit is killed when it is consolidated by another edit's `addEdit` or `replaceEdit` method, or when it is dequeued from an `UndoManager`.

    Specified by:
      `die` in interface `UndoableEdit`
    See Also:
      - `CompoundEdit.die()`

  - ### undo

    public void undo() throws CannotUndoException
    Throws `CannotUndoException` if `canUndo` returns `false`. Sets `hasBeenDone` to `false`. Subclasses should override to undo the operation represented by this edit. Override should begin with a call to super.
    Specified by:
      `undo` in interface `UndoableEdit`
    Throws:
      `CannotUndoException` - if `canUndo` returns `false`
    See Also:
      - `canUndo()`

  - ### canUndo

    public boolean canUndo()
    Returns true if this edit is `alive` and `hasBeenDone` is `true`.
    Specified by:
      `canUndo` in interface `UndoableEdit`
    Returns:
      true if this edit is `alive` and `hasBeenDone` is `true`
    See Also:
      - `die()`
      - `undo()`
      - `redo()`

  - ### redo

    public void redo() throws CannotRedoException
    Throws `CannotRedoException` if `canRedo` returns false. Sets `hasBeenDone` to `true`. Subclasses should override to redo the operation represented by this edit. Override should begin with a call to super.
    Specified by:
      `redo` in interface `UndoableEdit`
    Throws:
      `CannotRedoException` - if `canRedo` returns `false`
    See Also:
      - `canRedo()`

  - ### canRedo

    public boolean canRedo()
    Returns `true` if this edit is `alive` and `hasBeenDone` is `false`.
    Specified by:
      `canRedo` in interface `UndoableEdit`
    Returns:
      `true` if this edit is `alive` and `hasBeenDone` is `false`
    See Also:
      - `die()`
      - `undo()`
      - `redo()`

  - ### addEdit

    public boolean addEdit(UndoableEdit anEdit)
    This default implementation returns false.
    Specified by:
      `addEdit` in interface `UndoableEdit`
    Parameters:
      `anEdit` - the edit to be added
    Returns:
      false
    See Also:
      - `UndoableEdit.addEdit(UndoableEdit)`

  - ### replaceEdit

    public boolean replaceEdit(UndoableEdit anEdit)
    This default implementation returns false.
    Specified by:
      `replaceEdit` in interface `UndoableEdit`
    Parameters:
      `anEdit` - the edit to replace
    Returns:
      false
    See Also:
      - `UndoableEdit.replaceEdit(UndoableEdit)`

  - ### isSignificant

    public boolean isSignificant()
    This default implementation returns true.
    Specified by:
      `isSignificant` in interface `UndoableEdit`
    Returns:
      true
    See Also:
      - `UndoableEdit.isSignificant()`

  - ### getPresentationName

    public String getPresentationName()
    This default implementation returns "". Used by `getUndoPresentationName` and `getRedoPresentationName` to construct the strings they return. Subclasses should override to return an appropriate description of the operation this edit represents.
    Specified by:
      `getPresentationName` in interface `UndoableEdit`
    Returns:
      the empty string ""
    See Also:
      - `getUndoPresentationName()`
      - `getRedoPresentationName()`

  - ### getUndoPresentationName

    public String getUndoPresentationName()
    Retrieves the value from the defaults table with key `AbstractUndoableEdit.undoText` and returns that value followed by a space, followed by `getPresentationName`. If `getPresentationName` returns "", then the defaults value is returned alone.
    Specified by:
      `getUndoPresentationName` in interface `UndoableEdit`
    Returns:
      the value from the defaults table with key `AbstractUndoableEdit.undoText`, followed by a space, followed by `getPresentationName` unless `getPresentationName` is "" in which case, the defaults value is returned alone.
    See Also:
      - `getPresentationName()`

  - ### getRedoPresentationName

    public String getRedoPresentationName()
    Retrieves the value from the defaults table with key `AbstractUndoableEdit.redoText` and returns that value followed by a space, followed by `getPresentationName`. If `getPresentationName` returns "", then the defaults value is returned alone.
    Specified by:
      `getRedoPresentationName` in interface `UndoableEdit`
    Returns:
      the value from the defaults table with key `AbstractUndoableEdit.redoText`, followed by a space, followed by `getPresentationName` unless `getPresentationName` is "" in which case, the defaults value is returned alone.
    See Also:
      - `getPresentationName()`

  - ### toString

    public String toString()
    Returns a string that displays and identifies this object's properties.
    Overrides:
      `toString` in class `Object`
    Returns:
      a String representation of this object