Eclipse Platform
Release 3.1

org.eclipse.ltk.core.refactoring
Class Refactoring

java.lang.Object
  extended byorg.eclipse.core.runtime.PlatformObject
      extended byorg.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:

  1. methods to check conditions to determine if the refactoring can be carried out in general and if transformation will be behavioral persevering.
  2. a method to create a Change object that represents the actual work space modifications.
The life cycle of a refactoring is as follows:

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

Constructor Summary
Refactoring()
           
 
Method Summary
 RefactoringStatus checkAllConditions(IProgressMonitor pm)
          Checks all conditions.
abstract  RefactoringStatus checkFinalConditions(IProgressMonitor pm)
          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.
abstract  RefactoringStatus checkInitialConditions(IProgressMonitor pm)
          Checks some initial conditions based on the element to be refactored.
abstract  Change createChange(IProgressMonitor pm)
          Creates a Change object that performs the actual workspace transformation.
 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).

abstract  String getName()
          Returns the refactoring's name.
 Object getValidationContext()
          Returns the validation context
 void setValidationContext(Object context)
          Sets the validation context used when calling IWorkspace.validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object).
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Refactoring

public Refactoring()
Method Detail

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

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), Platform.getAdapterManager()

toString

public String toString()

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.