Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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 behaviour 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 behavioural 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:

- 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 called once and should not be called if one of the condition checking methods return a refactoring status of severity `RefactoringStatus.FATAL`.

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)`
`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 cancelled
  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 cancelled
  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 cancelled
  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 cancelled

### getAdapter

    public Object getAdapter(Class adapter)

### toString

    public String toString()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) IBM Corp. and others 2000, 2004. All Rights Reserved.