org.eclipse.ltk.core.refactoring
Class Refactoring
java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.ltk.core.refactoring.Refactoring
-
All Implemented Interfaces:
-
IAdaptable
-
Direct Known Subclasses:
-
ProcessorBasedRefactoring
-
public abstract class Refactoring
- extends
PlatformObject
Abstract super class for all refactorings. Refactorings are used to perform
behavior preserving work space transformations. A refactoring offers two
different kind of methods:
- methods to check conditions to determine if the refactoring can be carried out
in general and if transformation will be behavioral persevering.
- a method to create a
Change
object
that represents the actual work space modifications.
The life cycle of a refactoring is as follows:
- the refactoring gets created
- the refactoring is initialized with the elements to be refactored. It is
up to a concrete refactoring implementation to provide corresponding API.
-
checkInitialConditions(IProgressMonitor)
is called. The method
can be called more than once.
- additional arguments are provided to perform the refactoring (for example
the new name of a element in the case of a rename refactoring). It is up
to a concrete implementation to provide corresponding API.
-
checkFinalConditions(IProgressMonitor)
is called. The method
can be called more than once. The method must not be called if
checkInitialConditions(IProgressMonitor)
returns a refactoring
status of severity
RefactoringStatus.FATAL
.
-
createChange(IProgressMonitor)
is called. The method must only be
called once after each call to
checkFinalConditions(IProgressMonitor)
and should not be called if one of the condition checking methods
returns a refactoring status of severity
RefactoringStatus.FATAL
.
- steps 4 to 6 can be executed repeatedly (for example when the user goes
back from the preview page).
A refactoring can not assume that all resources are saved before any methods
are called on it. Therefore a refactoring must be able to deal with unsaved
resources.
The class should be subclassed by clients wishing to implement new refactorings.
-
Since:
- 3.0
Refactoring
public Refactoring()
setValidationContext
public final void setValidationContext(
Object context)
- Sets the validation context used when calling
IWorkspace.validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object)
.
-
-
Parameters:
-
context
- the org.eclipse.swt.widgets.Shell
that is
to be used to parent any dialogs with the user, or null
if
there is no UI context (declared as an Object
to avoid any
direct references on the SWT component)
getValidationContext
public final
Object getValidationContext()
- Returns the validation context
-
-
Returns:
- the validation context or
null
if no validation
context has been set.
getName
public abstract
String getName()
- Returns the refactoring's name.
-
-
Returns:
- the refactoring's human readable name. Must not be
null
getRefactoringTickProvider
public final
RefactoringTickProvider getRefactoringTickProvider()
- Returns the tick provider used for progress reporting for this
refactoring.
-
-
Returns:
- the refactoring tick provider used for progress reporting
-
Since:
- 3.2
doGetRefactoringTickProvider
protected
RefactoringTickProvider doGetRefactoringTickProvider()
- Hook method to provide the tick provider used for progress reporting.
Subclasses may override this method
-
-
Returns:
- the refactoring tick provider used for progress reporting
-
Since:
- 3.2
checkAllConditions
public
RefactoringStatus checkAllConditions(
IProgressMonitor pm)
throws
CoreException,
OperationCanceledException
- Checks all conditions. This implementation calls
checkInitialConditions
and checkFinalConditions
.
Subclasses may extend this method to provide additional condition checks.
-
-
Parameters:
-
pm
- a progress monitor to report progress
-
Returns:
- a refactoring status. If the status is
RefactoringStatus#FATAL
the refactoring has to be considered as not being executable.
-
Throws:
-
CoreException
- if an exception occurred during condition checking.
If this happens then the condition checking has to be interpreted as failed
-
OperationCanceledException
- if the condition checking got canceled -
See Also:
-
checkInitialConditions(IProgressMonitor)
,
checkFinalConditions(IProgressMonitor)
checkInitialConditions
public abstract
RefactoringStatus checkInitialConditions(
IProgressMonitor pm)
throws
CoreException,
OperationCanceledException
- Checks some initial conditions based on the element to be refactored. The
method is typically called by the UI to perform an initial checks after an
action has been executed.
The refactoring has to be considered as not being executable if the returned status
has the severity of RefactoringStatus#FATAL
.
This method can be called more than once.
-
-
Parameters:
-
pm
- a progress monitor to report progress. Although initial checks
are supposed to execute fast, there can be certain situations where progress
reporting is necessary. For example rebuilding a corrupted index may report
progress.
-
Returns:
- a refactoring status. If the status is
RefactoringStatus#FATAL
the refactoring has to be considered as not being executable.
-
Throws:
-
CoreException
- if an exception occurred during initial condition checking.
If this happens then the initial condition checking has to be interpreted as failed
-
OperationCanceledException
- if the condition checking got canceled -
See Also:
-
checkFinalConditions(IProgressMonitor)
,
RefactoringStatus.FATAL
checkFinalConditions
public abstract
RefactoringStatus checkFinalConditions(
IProgressMonitor pm)
throws
CoreException,
OperationCanceledException
- After
checkInitialConditions
has been performed and the user has
provided all input necessary to perform the refactoring this method is called
to check the remaining preconditions.
The refactoring has to be considered as not being executable if the returned status
has the severity of RefactoringStatus#FATAL
.
This method can be called more than once.
-
-
Parameters:
-
pm
- a progress monitor to report progress
-
Returns:
- a refactoring status. If the status is
RefactoringStatus#FATAL
the refactoring is considered as not being executable.
-
Throws:
-
CoreException
- if an exception occurred during final condition checking
If this happens then the final condition checking is interpreted as failed
-
OperationCanceledException
- if the condition checking got canceled -
See Also:
-
checkInitialConditions(IProgressMonitor)
,
RefactoringStatus.FATAL
createChange
public abstract
Change createChange(
IProgressMonitor pm)
throws
CoreException,
OperationCanceledException
- Creates a
Change
object that performs the actual workspace
transformation.
-
-
Parameters:
-
pm
- a progress monitor to report progress
-
Returns:
- the change representing the workspace modifications of the
refactoring
-
Throws:
-
CoreException
- if an error occurred while creating the change
-
OperationCanceledException
- if the condition checking got canceled
getAdapter
public
Object getAdapter(
Class adapter)
- Returns an object which is an instance of the given class
associated with this object. Returns
null
if
no such object can be found.
This implementation of the method declared by IAdaptable
passes the request along to the platform's adapter manager; roughly
Platform.getAdapterManager().getAdapter(this, adapter)
.
Subclasses may override this method (however, if they do so, they
should invoke the method on their superclass to ensure that the
Platform's adapter manager is consulted).
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
PlatformObject
-
-
Parameters:
-
adapter
- the class to adapt to
-
Returns:
- the adapted object or
null
-
See Also:
-
IAdaptable.getAdapter(Class)
toString
public
String toString()
-
-
Overrides:
-
toString
in class
Object
-
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.