Class AbstractReconciler

java.lang.Object
org.eclipse.jface.text.reconciler.AbstractReconciler
All Implemented Interfaces:
IReconciler
Direct Known Subclasses:
MonoReconciler, Reconciler

public abstract class AbstractReconciler extends Object implements IReconciler
Abstract implementation of IReconciler. The reconciler listens to input document changes as well as changes of the input document of the text viewer it is installed on. Depending on its configuration it manages the received change notifications in a queue folding neighboring or overlapping changes together. The reconciler processes the dirty regions as a background activity after having waited for further changes for the configured duration of time. A reconciler is started using the install(ITextViewer) method. As a first step initialProcess() is executed in the background. Then, the reconciling thread waits for changes that need to be reconciled. A reconciler can be resumed by calling forceReconciling() independent from the existence of actual changes. This mechanism is for subclasses only. It is the clients responsibility to stop a reconciler using its uninstall() method. Unstopped reconcilers do not free their resources.

It is subclass responsibility to specify how dirty regions are processed.

Since:
2.0
See Also:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a new reconciler without configuring it.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    Hook for subclasses which want to perform some action as soon as reconciliation is needed.
    protected void
    Hook for subclasses which want to perform some action as soon as the reconciler starts work (initial or reconciling) or waiting.
    protected void
    Forces the reconciler to reconcile the structure of the whole document.
    protected IDocument
    Returns the input document of the text viewer this reconciler is installed on.
    Returns the progress monitor of this reconciler.
    protected ITextViewer
    Returns the text viewer this reconciler is installed on.
    protected void
    This method is called on startup of the background activity.
    void
    install(ITextViewer textViewer)
    Installs the reconciler on the given text viewer.
    protected boolean
    Returns whether any of the reconciling strategies is interested in detailed dirty region information.
    protected boolean
    Tells whether the code is running in this reconciler's background thread.
    protected abstract void
    process(DirtyRegion dirtyRegion)
    Processes a dirty region.
    protected abstract void
    Hook called when the document whose contents should be reconciled has been changed, i.e., the input document of the text viewer this reconciler is installed on.
    protected void
    Hook that is called after the reconciler thread has been reset.
    void
    setDelay(int delay)
    Tells the reconciler how long it should wait for further text changes before activating the appropriate reconciling strategies.
    void
    setIsAllowedToModifyDocument(boolean isAllowedToModify)
    Tells the reconciler whether it is allowed to change the document inside its reconciler thread.
    void
    setIsIncrementalReconciler(boolean isIncremental)
    Tells the reconciler whether any of the available reconciling strategies is interested in getting detailed dirty region information or just in the fact that the document has been changed.
    void
    Sets the progress monitor of this reconciler.
    void
    Signal reconciling should finish as soon as possible.
    protected void
    Starts the reconciler to reconcile the queued dirty-regions.
    void
    Removes the reconciler from the text viewer it has previously been installed on.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.eclipse.jface.text.reconciler.IReconciler

    getReconcilingStrategy
  • Constructor Details

    • AbstractReconciler

      protected AbstractReconciler()
      Creates a new reconciler without configuring it.
  • Method Details

    • process

      protected abstract void process(DirtyRegion dirtyRegion)
      Processes a dirty region. If the dirty region is null the whole document is consider being dirty. The dirty region is partitioned by the document and each partition is handed over to a reconciling strategy registered for the partition's content type.
      Parameters:
      dirtyRegion - the dirty region to be processed
    • reconcilerDocumentChanged

      protected abstract void reconcilerDocumentChanged(IDocument newDocument)
      Hook called when the document whose contents should be reconciled has been changed, i.e., the input document of the text viewer this reconciler is installed on. Usually, subclasses use this hook to inform all their reconciling strategies about the change.
      Parameters:
      newDocument - the new reconciler document
    • setDelay

      public void setDelay(int delay)
      Tells the reconciler how long it should wait for further text changes before activating the appropriate reconciling strategies.
      Parameters:
      delay - the duration in milliseconds of a change collection period.
    • setIsIncrementalReconciler

      public void setIsIncrementalReconciler(boolean isIncremental)
      Tells the reconciler whether any of the available reconciling strategies is interested in getting detailed dirty region information or just in the fact that the document has been changed. In the second case, the reconciling can not incrementally be pursued.
      Parameters:
      isIncremental - indicates whether this reconciler will be configured with incremental reconciling strategies
      See Also:
    • setIsAllowedToModifyDocument

      public void setIsAllowedToModifyDocument(boolean isAllowedToModify)
      Tells the reconciler whether it is allowed to change the document inside its reconciler thread.

      If this is set to false an UnsupportedOperationException will be thrown when this restriction will be violated.

      Parameters:
      isAllowedToModify - indicates whether this reconciler is allowed to modify the document
      Since:
      3.2
    • setProgressMonitor

      public void setProgressMonitor(IProgressMonitor monitor)
      Sets the progress monitor of this reconciler.
      Parameters:
      monitor - the monitor to be used
    • isIncrementalReconciler

      protected boolean isIncrementalReconciler()
      Returns whether any of the reconciling strategies is interested in detailed dirty region information.
      Returns:
      whether this reconciler is incremental
      See Also:
    • getDocument

      protected IDocument getDocument()
      Returns the input document of the text viewer this reconciler is installed on.
      Returns:
      the reconciler document
    • getTextViewer

      protected ITextViewer getTextViewer()
      Returns the text viewer this reconciler is installed on.
      Returns:
      the text viewer this reconciler is installed on
    • getProgressMonitor

      protected IProgressMonitor getProgressMonitor()
      Returns the progress monitor of this reconciler.
      Returns:
      the progress monitor of this reconciler
    • install

      public void install(ITextViewer textViewer)
      Description copied from interface: IReconciler
      Installs the reconciler on the given text viewer. After this method has been finished, the reconciler is operational, i.e., it works without requesting further client actions until uninstall is called.
      Specified by:
      install in interface IReconciler
      Parameters:
      textViewer - the viewer on which the reconciler is installed
    • uninstall

      public void uninstall()
      Description copied from interface: IReconciler
      Removes the reconciler from the text viewer it has previously been installed on.
      Specified by:
      uninstall in interface IReconciler
    • aboutToBeReconciled

      protected void aboutToBeReconciled()
      Hook for subclasses which want to perform some action as soon as reconciliation is needed.

      Default implementation is to do nothing.

      Since:
      3.0
    • aboutToWork

      protected void aboutToWork()
      Hook for subclasses which want to perform some action as soon as the reconciler starts work (initial or reconciling) or waiting.

      Default implementation is to do nothing. Implementors may call signalWaitForFinish().

      Since:
      3.20
      See Also:
    • signalWaitForFinish

      public void signalWaitForFinish()
      Signal reconciling should finish as soon as possible.
      Since:
      3.20
      See Also:
    • initialProcess

      protected void initialProcess()
      This method is called on startup of the background activity. It is called only once during the life time of the reconciler. Clients may reimplement this method.
    • forceReconciling

      protected void forceReconciling()
      Forces the reconciler to reconcile the structure of the whole document. Clients may extend this method.
    • startReconciling

      protected void startReconciling()
      Starts the reconciler to reconcile the queued dirty-regions. Clients may extend this method.
    • reconcilerReset

      protected void reconcilerReset()
      Hook that is called after the reconciler thread has been reset.
    • isRunningInReconcilerThread

      protected boolean isRunningInReconcilerThread()
      Tells whether the code is running in this reconciler's background thread.
      Returns:
      true if running in this reconciler's background thread
      Since:
      3.4