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.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:
  DeleteRefactoring, MoveRefactoring, RenameRefactoring

public abstract class ProcessorBasedRefactoring
extends Refactoring

An abstract base implementation for refactorings that are split into one refactoring processor and 0..n participants.

This class should be subclassed by clients wishing to provide a special refactoring which uses a processor/participant architecture.

Since:
  3.0

Constructor Summary
`protected` | `ProcessorBasedRefactoring()` Creates a new processor based refactoring.

Method Summary
`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. 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.
`RefactoringStatus` | `checkInitialConditions(IProgressMonitor pm)` 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.
`Change` | `createChange(IProgressMonitor pm)` Creates a `Change` object that performs the actual workspace transformation.
`Object` | `getAdapter(Class clazz)` Adapts the refactoring to the given type.
`String` | `getName()` Returns the refactoring's name.
`abstract RefactoringProcessor` | `getProcessor()` Return the processor associated with this refactoring.
`boolean` | `isApplicable()` Checks whether the refactoring is applicable to the elements to be refactored or not.
`String` | `toString()`

Methods inherited from class org.eclipse.ltk.core.refactoring.Refactoring
`checkAllConditions, getValidationContext, setValidationContext`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ProcessorBasedRefactoring

    protected ProcessorBasedRefactoring()

  Creates a new processor based refactoring.

Method Detail

### getProcessor

    public abstract RefactoringProcessor getProcessor()

  Return the processor associated with this refactoring. The method must not return `null`.

  Returns:
    the processor associated with this refactoring

### 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

### getAdapter

    public Object getAdapter(Class clazz)

  Adapts the refactoring to the given type. The adapter is resolved as follows:
  1. the refactoring itself is checked whether it is an instance of the requested type.
  2. its processor is checked whether it is an instance of the requested type.
  3. 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.

### toString

    public String toString()

  Overrides:
    `toString` in class `Refactoring`

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.