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
  • Constructor Details

  • Method Details

    • 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()
      Description copied from class: Refactoring
      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
      Description copied from class: Refactoring
      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:
    • checkFinalConditions

      public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException
      Description copied from class: Refactoring
      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:
    • createChange

      public Change createChange(IProgressMonitor pm) throws CoreException
      Description copied from class: Refactoring
      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 <T> T getAdapter(Class<T> 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
      Type Parameters:
      T - the class type
      Parameters:
      clazz - the adapter class to look up
      Returns:
      the requested adapter or nullif no adapter exists.
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Refactoring