org.eclipse.ltk.core.refactoring.participants
Class ProcessorBasedRefactoring
java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.ltk.core.refactoring.Refactoring
org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring
-
All Implemented Interfaces:
-
IAdaptable
-
Direct Known Subclasses:
-
CopyRefactoring,
DeleteRefactoring,
MoveRefactoring,
RenameRefactoring
-
public class ProcessorBasedRefactoring
- extends
Refactoring
An base implementation for refactorings that are split into
one refactoring processor and 0..n participants.
This class can be subclassed by clients wishing to provide a special
refactoring which uses a processor/participant architecture.
Since 3.4, this class is non abstract and can be instantiated.
getProcessor()
will
return the processor passed in
ProcessorBasedRefactoring(RefactoringProcessor)
or
the processor set by
setProcessor(RefactoringProcessor)
.
-
Since:
- 3.0
ProcessorBasedRefactoring
protected ProcessorBasedRefactoring()
-
Deprecated. use
ProcessorBasedRefactoring(RefactoringProcessor)
instead
- Creates a new processor based refactoring. Clients must override
getProcessor()
to return a processor or set the
processor with
setProcessor(RefactoringProcessor)
.
ProcessorBasedRefactoring
public ProcessorBasedRefactoring(
RefactoringProcessor processor)
- Creates a new processor based refactoring.
-
Parameters:
-
processor
- the refactoring's main processor -
Since:
- 3.4 public, was added in 3.1 as protected method
getProcessor
public
RefactoringProcessor getProcessor()
- Return the processor associated with this refactoring. The
method must not return
null
. Implementors can override this method
to return the processor to be used by this refactoring. Since 3.4, this method returns the processor passed in
ProcessorBasedRefactoring(RefactoringProcessor)
or by
setProcessor(RefactoringProcessor)
.
-
-
Returns:
- the processor associated with this refactoring
setProcessor
public void setProcessor(
RefactoringProcessor processor)
- Sets the processor associated with this refactoring. The
processor must not be
null
.
-
-
Parameters:
-
processor
- the processor associated with this refactoring -
Since:
- 3.4
isApplicable
public final boolean isApplicable()
throws
CoreException
- Checks whether the refactoring is applicable to the elements to be
refactored or not.
This default implementation forwards the call to the refactoring
processor.
-
-
Returns:
-
true
if the refactoring is applicable to the
elements; otherwise false
is returned.
-
Throws:
-
CoreException
- if the test fails
getName
public
String getName()
- Returns the refactoring's name.
-
-
Specified by:
-
getName
in class
Refactoring
-
-
Returns:
- the refactoring's human readable name. Must not be
null
checkInitialConditions
public
RefactoringStatus checkInitialConditions(
IProgressMonitor pm)
throws
CoreException
- 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.
-
-
Specified by:
-
checkInitialConditions
in class
Refactoring
-
-
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 -
See Also:
-
Refactoring.checkFinalConditions(IProgressMonitor)
,
RefactoringStatus.FATAL
checkFinalConditions
public
RefactoringStatus checkFinalConditions(
IProgressMonitor pm)
throws
CoreException
- 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.
-
-
Specified by:
-
checkFinalConditions
in class
Refactoring
-
-
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 -
See Also:
-
Refactoring.checkInitialConditions(IProgressMonitor)
,
RefactoringStatus.FATAL
createChange
public
Change createChange(
IProgressMonitor pm)
throws
CoreException
- Creates a
Change
object that performs the actual workspace
transformation.
-
-
Specified by:
-
createChange
in class
Refactoring
-
-
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
getTextChange
public
TextChange getTextChange(
Object element)
- Returns the text change for the given element or
null
if a text change doesn't exist. This method only returns a valid
result during change creation. Outside of change creation always
null
is returned.
-
-
Parameters:
-
element
- the element to be modified for which a text change
is requested
-
Returns:
- the text change or
null
if no text change exists
for the element -
Since:
- 3.1
getAdapter
public
Object getAdapter(
Class clazz)
- Adapts the refactoring to the given type. The adapter is resolved
as follows:
- the refactoring itself is checked whether it is an instance
of the requested type.
- its processor is checked whether it is an instance of the
requested type.
- the request is delegated to the super class.
-
-
Specified by:
-
getAdapter
in interface
IAdaptable
-
Overrides:
-
getAdapter
in class
Refactoring
-
-
Parameters:
-
clazz
- the adapter class to look up
-
Returns:
- the requested adapter or
null
if no adapter
exists. -
See Also:
-
IAdaptable.getAdapter(Class)
toString
public
String toString()
-
-
Overrides:
-
toString
in class
Refactoring
-
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.