Interface IRefactoringHistoryService


  • public interface IRefactoringHistoryService
    Interface for a refactoring history service. A refactoring history service provides methods to register refactoring history listeners, refactoring execution listeners and facilities to query the global refactoring history index for specific refactoring histories. Additionally, methods are provided which read or write refactoring information. The refactoring history service only returns refactorings which have contributed a refactoring descriptor via their change object.

    An instance of a refactoring history service may be obtained by calling RefactoringCore.getHistoryService().

    All time stamps are measured as the milliseconds since January 1, 1970, 00:00:00 GMT.

    Note: this interface is not intended to be implemented by clients.

    Since:
    3.2
    See Also:
    RefactoringCore, IRefactoringHistoryListener, IRefactoringExecutionListener, RefactoringHistory, RefactoringDescriptorProxy
    Restriction:
    This interface is not intended to be implemented by clients.
    Restriction:
    This interface is not intended to be extended by clients.
    • Method Detail

      • addExecutionListener

        void addExecutionListener​(IRefactoringExecutionListener listener)
        Adds the specified refactoring execution listener to this service.

        If the listener is already registered with the service, nothing happens.

        Parameters:
        listener - the listener to add
      • addHistoryListener

        void addHistoryListener​(IRefactoringHistoryListener listener)
        Adds the specified refactoring history listener to this service.

        If the listener is already registered with the service, nothing happens.

        Parameters:
        listener - the listener to add
      • connect

        void connect()
        Connects the refactoring history service to the workbench's operation history if necessary and increments an internal counter.

        If the service is already connected, nothing happens.

        Every call to connect() must be balanced with a corresponding call to disconnect().

      • disconnect

        void disconnect()
        Disconnects the refactoring history service from the workbench's operation history if necessary and decrements an internal counter.

        If the service is not connected, nothing happens. If the service is connected, all resources acquired since the corresponding call to connect() are released.

        Every call to disconnect() must be balanced with a corresponding call to connect().

      • getProjectHistory

        RefactoringHistory getProjectHistory​(IProject project,
                                             IProgressMonitor monitor)
        Returns a project refactoring history for the specified project.

        Clients must connect to the refactoring history service first before calling this method.

        Parameters:
        project - the project, which must exist
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the project refactoring history
      • getProjectHistory

        RefactoringHistory getProjectHistory​(IProject project,
                                             long start,
                                             long end,
                                             int flags,
                                             IProgressMonitor monitor)
        Returns a project refactoring history for the specified project.

        Clients must connect to the refactoring history service first before calling this method.

        Note that calling this method with a flag argument unequal to RefactoringDescriptor#NONE may result in a performance degradation, since the actual descriptors have to be eagerly resolved. This in turn results in faster execution of any subsequent calls to RefactoringDescriptorProxy.requestDescriptor(IProgressMonitor) which try to request a descriptor from the returned refactoring history.

        Parameters:
        project - the project, which must exist
        start - the start time stamp, inclusive
        end - the end time stamp, inclusive
        flags - the refactoring descriptor flags which must be present in order to be returned in the refactoring history object, or RefactoringDescriptor#NONE
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the project refactoring history
      • getRefactoringHistory

        RefactoringHistory getRefactoringHistory​(IProject[] projects,
                                                 IProgressMonitor monitor)
        Returns the combined refactoring history for the specified projects.

        Clients must connect to the refactoring history service first before calling this method.

        Parameters:
        projects - the projects, which must exist
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the combined refactoring history
      • getRefactoringHistory

        RefactoringHistory getRefactoringHistory​(IProject[] projects,
                                                 long start,
                                                 long end,
                                                 int flags,
                                                 IProgressMonitor monitor)
        Returns the combined refactoring history for the specified projects.

        Clients must connect to the refactoring history service first before calling this method.

        Note that calling this method with a flag argument unequal to RefactoringDescriptor#NONE may result in a performance degradation, since the actual descriptors have to be eagerly resolved. This in turn results in faster execution of any subsequent calls to RefactoringDescriptorProxy.requestDescriptor(IProgressMonitor) which try to request a descriptor from the returned refactoring history.

        Parameters:
        projects - the projects, which must exist
        start - the start time stamp, inclusive
        end - the end time stamp, inclusive
        flags - the refactoring descriptor flags which must be present in order to be returned in the refactoring history object, or RefactoringDescriptor#NONE
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the combined refactoring history
      • getWorkspaceHistory

        RefactoringHistory getWorkspaceHistory​(IProgressMonitor monitor)
        Returns the workspace refactoring history.

        Clients must connect to the refactoring history service first before calling this method.

        Parameters:
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the workspace refactoring history
      • getWorkspaceHistory

        RefactoringHistory getWorkspaceHistory​(long start,
                                               long end,
                                               IProgressMonitor monitor)
        Returns the workspace refactoring history.

        Clients must connect to the refactoring history service first before calling this method.

        Parameters:
        start - the start time stamp, inclusive
        end - the end time stamp, inclusive
        monitor - the progress monitor to use, or null if no progress monitoring or cancelation is desired
        Returns:
        the workspace refactoring history
      • removeExecutionListener

        void removeExecutionListener​(IRefactoringExecutionListener listener)
        Removes the specified refactoring execution listener from this service.

        If the listener is not registered with the service, nothing happens.

        Parameters:
        listener - the listener to remove
      • removeHistoryListener

        void removeHistoryListener​(IRefactoringHistoryListener listener)
        Removes the specified refactoring history listener from this service.

        If the listener is not registered with the service, nothing happens.

        Parameters:
        listener - the listener to remove
      • writeRefactoringSession

        void writeRefactoringSession​(RefactoringSessionDescriptor descriptor,
                                     OutputStream stream,
                                     boolean time)
                              throws CoreException
        Writes the specified refactoring session descriptor to the output stream.

        It is the responsibility of the caller to close the output stream.

        Parameters:
        descriptor - the refactoring session descriptor to write
        stream - a UTF-8 output stream where to write the refactoring session to
        time - true to write time information associated with the refactorings, false otherwise
        Throws:
        CoreException - if an error occurs while writing to the output stream. Reasons include:
        • The refactoring descriptors have an illegal format, contain illegal arguments or otherwise illegal information.
        • An I/O error occurs while writing the refactoring descriptors to the output stream.
        See Also:
        IRefactoringCoreStatusCodes.REFACTORING_HISTORY_FORMAT_ERROR, IRefactoringCoreStatusCodes.REFACTORING_HISTORY_IO_ERROR