- All Implemented Interfaces:
This class is not intended to be instantiated by clients. It is
usually created by a
The class should be subclassed by clients also subclassing
TextFileChange to provide a proper undo change object.
Method SummaryModifier and TypeMethodDescription
protected ChangeHook to create an undo change for the given undo edit.
dispose()Disposes this change.
ObjectReturns the elements affected by this change or
nullif the affected elements cannot be determined.Returns the element modified by this
getName()Returns the human readable name of this change.
intReturns the change's save mode.
voidHook method to initialize some internal state to provide an adequate answer for the
isValidmethod.Verifies that this change object is still valid and can be executed by calling
perform.Performs this change.
Methods inherited from class org.eclipse.ltk.core.refactoring.Change
getAdapter, getDescriptor, getParent, isEnabled, setEnabled, setEnabledShallow
(String name, IFile file, UndoEdit undo, ContentStamp stamp, int saveMode)Create a new undo text file change object.
name- the human readable name of the change
file- the file the change is working on
stamp- the content stamp to restore when the undo is executed
undo- the edit representing the undo modifications
saveMode- the save mode as specified by
- See Also:
getSaveModepublic int getSaveMode()Returns the change's save mode.
getNamepublic String getName()Returns the human readable name of this change. The name MUST not be
createUndoChangeHook to create an undo change for the given undo edit. This hook gets called while performing the change to construct the corresponding undo change object.
Subclasses may override it to create a different undo change.
getModifiedElementpublic Object getModifiedElement()Returns the element modified by this
Change. The method may return
nullif the change isn't related to an element.
getAffectedObjectspublic Object getAffectedObjects()Returns the elements affected by this change or
nullif the affected elements cannot be determined. Returns an empty array if the change doesn't modify any elements.
This default implementation returns
nullto indicate that the affected elements are unknown. Subclasses should reimplement this method if they can compute the set of affected elements.
initializeValidationDatapublic void initializeValidationData
(IProgressMonitor pm)Hook method to initialize some internal state to provide an adequate answer for the
isValidmethod. This method gets called after a change or a whole change tree has been created.
Typically this method is implemented in one of the following ways:
- the change hooks up a listener on some delta notification mechanism
and marks itself as invalid if it receives a certain delta. Is this
the case the implementor must take care of unhooking the listener
- the change remembers some information allowing to decide if a change
object is still valid when
For example, a change object that manipulates the content of an
IFilecould either listen to resource changes and detect that the file got changed or it could remember some content stamp and compare it with the actual content stamp when
- the change hooks up a listener on some delta notification mechanism and marks itself as invalid if it receives a certain delta. Is this the case the implementor must take care of unhooking the listener in
isValidVerifies that this change object is still valid and can be executed by calling
perform. If a refactoring status with a severity of
RefactoringStatus.FATALis returned then the change has to be treated as invalid and can no longer be executed. Performing such a change produces an unspecified result and will very likely throw an exception.
This method is also called by the
UndoManagerto decide if an undo or redo change is still valid and therefore can be executed.
performPerforms this change. If this method is called on an invalid or disabled change object the result is unspecified. Changes should in general not respond to
IProgressMonitor.isCanceled()since canceling a change tree in the middle of its execution leaves the workspace in a half changed state.
disposepublic void dispose()Disposes this change. Subclasses that override this method typically unregister listeners which got registered during the call to
Subclasses may override this method.