# Package org.eclipse.core.commands.operations

package org.eclipse.core.commands.operations
Classes for the creation of undoable operations which can be added to an operations history and later be undone and redone.

## Package Specification

An undoable operation is a unit of work that can be executed, undone, and redone. Operations can be added to an operation history so that they can later be undone and redone according to the undo model for an application. Operations may be assigned one or more undo contexts which can be used to filter the available operations for undo or redo in the operation history. Clients may choose to provide undo and redo function for all operations in a history, or only for a particular undo context in that history. Operation histories may be configured with an operation approver so that applications can enforce any desired undo model, such as strict linear (LIFO) undo. This package provides the definition and a basic implementation for operations, undo contexts, histories, and operation approvers.

Related Packages
Package
Description
org.eclipse.core.commands
Application programming interfaces for commands and handlers.
org.eclipse.core.commands.common
Application programming interfaces for common base classes.
org.eclipse.core.commands.contexts
Application programming interfaces for contexts.
org.eclipse.core.commands.util
Classes representing core utilities for the Commands infrastructure.
Class
Description
AbstractOperation
Abstract implementation for an undoable operation.
DefaultOperationHistory
A base implementation of IOperationHistory that implements a linear undo and redo model .
IAdvancedUndoableOperation
IAdvancedUndoableOperation defines an interface for undoable operations that modify one or more elements in a model and attempt to keep model listeners up to date with changes that occur in the undo and redo history involving particular model elements.
IAdvancedUndoableOperation2
IAdvancedUndoableOperation2 defines a method for computing the validity of executing an operation before attempting to execute it.
ICompositeOperation
ICompositeOperation defines an undoable operation that is composed of child operations.
IContextReplacingOperation
IContextReplacingOperation defines an interface for undoable operations that can replace one undo context with another undo context.
IOperationApprover
IOperationApprover defines an interface for approving the undo or redo of a particular operation within an operation history.
IOperationApprover2
Extends `IOperationApprover` to approve the execution of a particular operation within an operation history.
IOperationHistory
IOperationHistory tracks a history of operations that can be undone or redone.
IOperationHistoryListener
This interface is used to listen to notifications from an IOperationHistory.
IUndoableOperation
IUndoableOperation defines an operation that can be executed, undone, and redone.
IUndoContext
An undo context is used to "tag" operations as being applicable to a certain context.
LinearUndoEnforcer
An operation approver that enforces a strict linear undo.
LinearUndoViolationDetector
An abstract class for detecting violations in a strict linear undo/redo model.
ObjectUndoContext
An undo context that can be used to represent any given object.
OperationHistoryEvent
OperationHistoryEvent is used to communicate changes that occur in a DefaultOperationHistory, including the addition or removal of operations, and the execution, undo, and redo of operations.
OperationHistoryFactory
This class is used to maintain the instance of the operation history that should be used by classes that access the undo or redo history and add undoable operations to the history.
OperationStatus
OperationStatus describes the status of a request to execute, undo, or redo an operation.
TriggeredOperations
Triggered operations are a specialized implementation of a composite operation that keeps track of operations triggered by the execution of some primary operation.
UndoContext
A simple, lightweight undo context that can be used to tag any operation.