Class AbstractTextSearchResult

java.lang.Object
org.eclipse.search.ui.text.AbstractTextSearchResult
All Implemented Interfaces:
ISearchResult

public abstract class AbstractTextSearchResult extends Object implements ISearchResult
An abstract base implementation for text-match based search results. This search result implementation consists of a list of matches. No assumptions are made about the kind of elements these matches are reported against.
Since:
3.0
  • Constructor Details

    • AbstractTextSearchResult

      protected AbstractTextSearchResult()
      Constructs a new AbstractTextSearchResult
  • Method Details

    • getMatches

      public Match[] getMatches(Object element)
      Returns an array with all matches reported against the given element. Note that all matches of the given element are returned. The filter state of the matches is not relevant. The matches are reported sorted per offset and length. The order may be important for example stepping between matches (see bug 58417). For calculating just a match count the order is not needed and the faster getMatchSet(Object) should be used instead. The order of reported matches found (with equal offset and length) is not preserved (Does not make sense during parallel search).
      Parameters:
      element - the element to report matches for
      Returns:
      all matches reported for this element
      See Also:
    • getMatchSet

      public Enumeration<Match> getMatchSet(Object element)
      Returns an Enumeration of all matches reported against the given element. Note that all matches of the given element are returned. The filter state of the matches is not relevant. Like getMatches(Object) but unordered result.
      Parameters:
      element - the element to report matches for
      Returns:
      all matches reported for this element
      Since:
      3.14
      See Also:
    • addMatch

      public void addMatch(Match match)
      Adds a Match to this search result. This method does nothing if the match is already present.

      Subclasses may extend this method.

      Parameters:
      match - the match to add
    • addMatches

      public void addMatches(Match[] matches)
      Adds a number of Matches to this search result. This method does nothing for matches that are already present.

      Subclasses may extend this method.

      Parameters:
      matches - the matches to add
    • removeAll

      public void removeAll()
      Removes all matches from this search result.

      Subclasses may extend this method.

    • removeMatch

      public void removeMatch(Match match)
      Removes the given match from this search result. This method has no effect if the match is not found.

      Subclasses may extend this method.

      Parameters:
      match - the match to remove
    • removeMatches

      public void removeMatches(Match[] matches)
      Removes the given matches from this search result. This method has no effect for matches that are not found

      Subclasses may extend this method.

      Parameters:
      matches - the matches to remove
    • addListener

      public void addListener(ISearchResultListener l)
      Description copied from interface: ISearchResult
      Adds a ISearchResultListener. Has no effect when the listener has already been added.
      Specified by:
      addListener in interface ISearchResult
      Parameters:
      l - the listener to be added
    • removeListener

      public void removeListener(ISearchResultListener l)
      Description copied from interface: ISearchResult
      Removes a ISearchResultChangedListener. Has no effect when the listener hasn't previously been added.
      Specified by:
      removeListener in interface ISearchResult
      Parameters:
      l - the listener to be removed
    • fireChange

      protected void fireChange(SearchResultEvent e)
      Send the given SearchResultEvent to all registered search result listeners.
      Parameters:
      e - the event to be sent
      See Also:
    • getMatchCount

      public int getMatchCount()
      Returns the total number of matches contained in this search result. The filter state of the matches is not relevant when counting matches. All matches are counted.
      Returns:
      total number of matches
    • hasMatches

      public boolean hasMatches()
      Returns:
      true if the result is not empty
      Since:
      3.17
    • getMatchCount

      public int getMatchCount(Object element)
      Returns the number of matches reported against a given element. This is equivalent to calling getMatches(element).length The filter state of the matches is not relevant when counting matches. All matches are counted.
      Parameters:
      element - the element to get the match count for
      Returns:
      the number of matches reported against the element
    • getElements

      public Object[] getElements()
      Returns an array containing the set of all elements that matches are reported against in this search result. Note that all elements that contain matches are returned. The filter state of the matches is not relevant.
      Returns:
      the set of elements in this search result
    • getElementsCount

      public int getElementsCount()
      Returns a number of all elements that have matches. Note that count of all elements that contain matches are returned. The filter state of the matches is not relevant.
      Returns:
      the number of elements in this search result
      Since:
      3.17
    • setActiveMatchFilters

      public void setActiveMatchFilters(MatchFilter[] filters)
      Sets the active match filters for this result. If set to non-null, the match filters will be used to update the filter state (Match.isFiltered() of matches and the AbstractTextSearchViewPage will only show non-filtered matches. If null is set the filter state of the match is ignored by the AbstractTextSearchViewPage and all matches are shown. Note the model contains all matches, regardless if the filter state of a match.
      Parameters:
      filters - the match filters to set or null if the filter state of the match should be ignored.
      Since:
      3.3
    • getActiveMatchFilters

      public MatchFilter[] getActiveMatchFilters()
      Returns the active match filters for this result. If not null is returned, the match filters will be used to update the filter state (Match.isFiltered() of matches and the AbstractTextSearchViewPage will only show non-filtered matches. If null is set the filter state of the match is ignored by the AbstractTextSearchViewPage and all matches are shown.
      Returns:
      the match filters to be used or null if the filter state of the match should be ignored.
      Since:
      3.3
    • getAllMatchFilters

      public MatchFilter[] getAllMatchFilters()
      Returns all applicable filters for this result or null if match filters are not supported. If match filters are returned, the AbstractTextSearchViewPage will contain menu entries in the view menu.
      Returns:
      all applicable filters for this result.
      Since:
      3.3
    • getEditorMatchAdapter

      public abstract IEditorMatchAdapter getEditorMatchAdapter()
      Returns an implementation of IEditorMatchAdapter appropriate for this search result.
      Returns:
      an appropriate adapter or null if none has been implemented
      See Also:
    • getFileMatchAdapter

      public abstract IFileMatchAdapter getFileMatchAdapter()
      Returns an implementation of IFileMatchAdapter appropriate for this search result.
      Returns:
      an appropriate adapter or null if none has been implemented
      See Also: