Package org.eclipse.handly.ui.search

# Class AbstractHandlySearchResult

java.lang.Object
org.eclipse.search.ui.text.AbstractTextSearchResult
org.eclipse.handly.ui.search.AbstractHandlySearchResult

All Implemented Interfaces:
  `org.eclipse.search.ui.ISearchResult`, `org.eclipse.search.ui.text.IEditorMatchAdapter`, `org.eclipse.search.ui.text.IFileMatchAdapter`

public abstract class AbstractHandlySearchResult extends org.eclipse.search.ui.text.AbstractTextSearchResult implements org.eclipse.search.ui.text.IEditorMatchAdapter, org.eclipse.search.ui.text.IFileMatchAdapter
A partial implementation of Handly-based search result. Assumes that `matches` are reported against `IElement`s (or elements that can be adapted to `IElement`s via a `content adapter`); also supports matches that are reported against `IResource`s. Implements `getEditorMatchAdapter()` and `getFileMatchAdapter()` methods of `AbstractTextSearchResult` by returning appropriate adapters. An `updater` can be provided at construction time that will update the content of the search result on element change events.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractHandlySearchResult(HandlySearchResultUpdater updater)`
  Constructs a new `AbstractHandlySearchResult`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.eclipse.search.ui.text.Match[]`
  `computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult result, org.eclipse.core.resources.IFile file)`
  `org.eclipse.search.ui.text.Match[]`
  `computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult result, org.eclipse.ui.IEditorPart editor)`
  `IContentAdapter`
  `getContentAdapter()`
  Returns the content adapter that defines a mapping between `IElement`s and elements of this search result.
  `org.eclipse.search.ui.text.IEditorMatchAdapter`
  `getEditorMatchAdapter()`
  `org.eclipse.core.resources.IFile`
  `getFile(Object element)`
  `org.eclipse.search.ui.text.IFileMatchAdapter`
  `getFileMatchAdapter()`
  `protected abstract IInputElementProvider`
  `getInputElementProvider()`
  Returns the input element provider for this search result.
  `boolean`
  `isShownInEditor(org.eclipse.search.ui.text.Match match, org.eclipse.ui.IEditorPart editor)`

  ### Methods inherited from class org.eclipse.search.ui.text.AbstractTextSearchResult

  `addListener, addMatch, addMatches, fireChange, getActiveMatchFilters, getAllMatchFilters, getElements, getMatchCount, getMatchCount, getMatches, getMatchSet, removeAll, removeListener, removeMatch, removeMatches, setActiveMatchFilters`

  ### Methods inherited from class java.lang.Object

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

  ### Methods inherited from interface org.eclipse.search.ui.ISearchResult

  `getImageDescriptor, getLabel, getQuery, getTooltip`

- ## Constructor Details

  - ### AbstractHandlySearchResult

    public AbstractHandlySearchResult(HandlySearchResultUpdater updater)
    Constructs a new `AbstractHandlySearchResult`.
    Parameters:
      `updater` - a search result updater, or `null` if updating is not desired

- ## Method Details

  - ### isShownInEditor

    public boolean isShownInEditor(org.eclipse.search.ui.text.Match match, org.eclipse.ui.IEditorPart editor)

    If the match element is not an `IResource` and could be adapted to an `IElement` through the `content adapter`, this implementation uses the `input element provider` to determine the corresponding `IElement` for the editor input and, if there is such an input `IElement`, returns `true` if and only if the input element `contains` the adapter element. Otherwise, this implementation returns `true` if and only if the corresponding `IResource` (if any) for the match element equals the resource `corresponding` to the editor input. The corresponding resource for the match element is determined as follows:

    - If the match element is an `IResource`, the corresponding resource is the element itself.
    - Otherwise, if the match element could be adapted to an `IElement` through the `content adapter`, the corresponding resource is obtained via `Elements.getResource(IElement)`.
    Specified by:
      `isShownInEditor` in interface `org.eclipse.search.ui.text.IEditorMatchAdapter`

  - ### computeContainedMatches

    public org.eclipse.search.ui.text.Match[] computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult result, org.eclipse.ui.IEditorPart editor)

    If the editor input could be adapted to an `IFile`, this implementation collects all matches reported against the file, as returned by `AbstractTextSearchResult.getMatches(Object)`. In addition, this implementation uses the `input element provider` to determine the corresponding `IElement` for the editor input and collects all matches reported against elements that correspond to the `IElement` and any of its descendant elements (the corresponding elements are determined via the `getCorrespondingElement(IElement)` method of the `content adapter`).

    Specified by:
      `computeContainedMatches` in interface `org.eclipse.search.ui.text.IEditorMatchAdapter`

  - ### computeContainedMatches

    public org.eclipse.search.ui.text.Match[] computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult result, org.eclipse.core.resources.IFile file)

    This implementation collects all matches reported against the given file itself, as returned by `AbstractTextSearchResult.getMatches(Object)`. In addition, this implementation uses the `input element provider` to determine the corresponding `IElement` for the given file and collects all matches reported against elements that correspond to the `IElement` and any of its descendant elements (the corresponding elements are determined via the `getCorrespondingElement(IElement)` method of the `content adapter`).

    Specified by:
      `computeContainedMatches` in interface `org.eclipse.search.ui.text.IFileMatchAdapter`

  - ### getFile

    public org.eclipse.core.resources.IFile getFile(Object element)

    If the given element has a corresponding resource that is an `IFile`, this implementation returns the file. The corresponding resource is determined as follows:

    - If the given element is an `IResource`, the corresponding resource is the element itself.
    - Otherwise, if the given element could be adapted to an `IElement` through the `content adapter`, the corresponding resource is obtained via `Elements.getResource(IElement)`.
    Specified by:
      `getFile` in interface `org.eclipse.search.ui.text.IFileMatchAdapter`

  - ### getEditorMatchAdapter

    public org.eclipse.search.ui.text.IEditorMatchAdapter getEditorMatchAdapter()

    This implementation returns this search result, which implements `IEditorMatchAdapter`.

    Specified by:
      `getEditorMatchAdapter` in class `org.eclipse.search.ui.text.AbstractTextSearchResult`

  - ### getFileMatchAdapter

    public org.eclipse.search.ui.text.IFileMatchAdapter getFileMatchAdapter()

    This implementation returns this search result, which implements `IFileMatchAdapter`.

    Specified by:
      `getFileMatchAdapter` in class `org.eclipse.search.ui.text.AbstractTextSearchResult`

  - ### getContentAdapter

    public IContentAdapter getContentAdapter()
    Returns the content adapter that defines a mapping between `IElement`s and elements of this search result.

    Default implementation returns a `NullContentAdapter`. Subclasses may override.

    Returns:
      an `IContentAdapter` (never `null`)

  - ### getInputElementProvider

    protected abstract IInputElementProvider getInputElementProvider()
    Returns the input element provider for this search result.
    Returns:
      the input element provider