org.aspectj.org.eclipse.jdt.internal.core.search
Class JavaSearchParticipant

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.core.search.SearchParticipant
      extended by org.aspectj.org.eclipse.jdt.internal.core.search.JavaSearchParticipant

public class JavaSearchParticipant
extends SearchParticipant

A search participant describes a particular extension to a generic search mechanism, allowing thus to perform combined search actions which will involve all required participants A search scope defines which participants are involved. A search participant is responsible for holding index files, and selecting the appropriate ones to feed to index queries. It also can map a document path to an actual document (note that documents could live outside the workspace or no exist yet, and thus aren't just resources).


Constructor Summary
JavaSearchParticipant()
           
 
Method Summary
 void beginSearching()
          Notification that this participant's help is needed in a search.
 void doneSearching()
          Notification that this participant's help is no longer needed.
 java.lang.String getDescription()
          Returns a displayable name of this search participant.
 SearchDocument getDocument(java.lang.String documentPath)
          Returns a search document for the given path.
 void indexDocument(SearchDocument document, IPath indexPath)
          Indexes the given document in the given index.
 void locateMatches(SearchDocument[] indexMatches, SearchPattern pattern, IJavaSearchScope scope, SearchRequestor requestor, IProgressMonitor monitor)
          Locates the matches in the given documents using the given search pattern and search scope, and reports them to the givenn search requestor.
 IPath[] selectIndexes(SearchPattern pattern, IJavaSearchScope scope)
          Returns the collection of index locations to consider when performing the given search query in the given scope.
 
Methods inherited from class org.aspectj.org.eclipse.jdt.core.search.SearchParticipant
removeIndex, scheduleDocumentIndexing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaSearchParticipant

public JavaSearchParticipant()
Method Detail

beginSearching

public void beginSearching()
Description copied from class: SearchParticipant
Notification that this participant's help is needed in a search.

This method should be re-implemented in subclasses that need to do something when the participant is needed in a search.

Overrides:
beginSearching in class SearchParticipant

doneSearching

public void doneSearching()
Description copied from class: SearchParticipant
Notification that this participant's help is no longer needed.

This method should be re-implemented in subclasses that need to do something when the participant is no longer needed in a search.

Overrides:
doneSearching in class SearchParticipant

getDescription

public java.lang.String getDescription()
Description copied from class: SearchParticipant
Returns a displayable name of this search participant.

This method should be re-implemented in subclasses that need to display a meaningfull name.

Overrides:
getDescription in class SearchParticipant
Returns:
the displayable name of this search participant

getDocument

public SearchDocument getDocument(java.lang.String documentPath)
Description copied from class: SearchParticipant
Returns a search document for the given path. The given document path is a string that uniquely identifies the document. Most of the time it is a workspace-relative path, but it can also be a file system path, or a path inside a zip file.

Implementors of this method can either create an instance of their own subclass of SearchDocument or return an existing instance of such a subclass.

Specified by:
getDocument in class SearchParticipant
Parameters:
documentPath - the path of the document.
Returns:
a search document

indexDocument

public void indexDocument(SearchDocument document,
                          IPath indexPath)
Description copied from class: SearchParticipant
Indexes the given document in the given index. A search participant asked to index a document should parse it and call SearchDocument.addIndexEntry(char[], char[]) as many times as needed to add index entries to the index. If delegating to another participant, it should use the original index location (and not the delegatee's one). In the particular case of delegating to the default search participant (see SearchEngine.getDefaultSearchParticipant()), the provided document's path must be a path ending with one of the Java-like extensions or with '.class'.

The given index location must represent a path in the file system to a file that either already exists or is going to be created. If it exists, it must be an index file, otherwise its data might be overwritten.

Clients are not expected to call this method.

Specified by:
indexDocument in class SearchParticipant
Parameters:
document - the document to index
indexPath - the location in the file system to the index

locateMatches

public void locateMatches(SearchDocument[] indexMatches,
                          SearchPattern pattern,
                          IJavaSearchScope scope,
                          SearchRequestor requestor,
                          IProgressMonitor monitor)
                   throws CoreException
Description copied from class: SearchParticipant
Locates the matches in the given documents using the given search pattern and search scope, and reports them to the givenn search requestor. This method is called by the search engine once it has search documents matching the given pattern in the given search scope.

Note that a participant (e.g. a JSP participant) can pre-process the contents of the given documents, create its own documents whose contents are Java compilation units and delegate the match location to the default participant (see SearchEngine.getDefaultSearchParticipant()). Passing its own SearchRequestor this particpant can then map the match positions back to the original contents, create its own matches and report them to the original requestor.

Implementors of this method should check the progress monitor for cancelation when it is safe and appropriate to do so. The cancelation request should be propagated to the caller by throwing OperationCanceledException.

Specified by:
locateMatches in class SearchParticipant
Parameters:
indexMatches - the documents to locate matches in
pattern - the search pattern to use when locating matches
scope - the scope to limit the search to
requestor - the requestor to report matches to
monitor - the progress monitor to report progress to, or null if no progress should be reported
Throws:
CoreException - if the requestor had problem accepting one of the matches

selectIndexes

public IPath[] selectIndexes(SearchPattern pattern,
                             IJavaSearchScope scope)
Description copied from class: SearchParticipant
Returns the collection of index locations to consider when performing the given search query in the given scope. The search engine calls this method before locating matches.

An index location represents a path in the file system to a file that holds index information.

Clients are not expected to call this method.

Specified by:
selectIndexes in class SearchParticipant
Parameters:
pattern - the search pattern to consider
scope - the given search scope
Returns:
the collection of index paths to consider