Class ProcessorBasedRefactoring

    • Method Detail

      • 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:
        Refactoring.checkFinalConditions(IProgressMonitor), RefactoringStatus.FATAL
      • 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:
        Refactoring.checkInitialConditions(IProgressMonitor), RefactoringStatus.FATAL
      • 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:
        IAdaptable.getAdapter(Class)