Bug 89031 [Undo/Redo] IWorkbench#getOperationSupport() marked experimental
IWorkbench#getOperationSupport() marked experimental
bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
* <p>
 * IOperationHistory tracks a history of operations that can be undone or
 * redone. Operations are added to the history once they have been initially
 * executed. Clients may choose whether to have the operations history perform
 * the initial execution or simply add the operation to the history.
 * </p>
 * <p>
 * Once operations are added to the history, the methods <code>canRedo()</code>
 * and <code>canUndo()</code> are used to determine whether there is an
 * operation available for undo and redo in a given operation context. The
 * context-based protocol implies that there is only one operation that can be
 * undone or redone at a given time in a given context. This is typical of a
 * linear undo model, when only the most recently executed operation is
 * available for undo. When this protocol is used, a linear model is enforced by
 * the history. It is up to clients to determine how to maintain a history that
 * is invalid or stale. For example, when the most recent operation for a
 * context cannot be performed, clients may wish to flush the history for that
 * context.
 * </p>
 * <p>
 * Additional protocol allows direct undo and redo of a specified operation,
 * regardless of its position in the history. When a more flexible undo model is
 * supported, these methods can be implemented to undo and redo directly
 * specified operations. If an implementer of IOperationHistory does not allow
 * direct undo and redo, these methods can return a status indicating that it is
 * not allowed.
 * </p>
 * <p>
 * Listeners (IOperationHistoryListener) can listen for notifications about
 * changes in the history (operations added or removed), and for notification