# Interface IQueryParticipant

public interface IQueryParticipant
This is the interface expected of extensions to the extension point `org.eclipse.jdt.ui.queryParticipants`.

A `IQueryParticipant` is called during the execution of a Java search query. It can report matches via an `ISearchRequestor` and may contribute a `IMatchPresentation` to help render the elements it contributes.

Clients may implement this interface.

Since:
  3.0

## Method Summary

Modifier and Type
Method
Description
`int`
`estimateTicks(QuerySpecification specification)`
Returns the number of units of work estimated.
`IMatchPresentation`
`getUIParticipant()`
Gets the UI participant responsible for handling the display of elements not known to the Java search UI.
`void`
`search(ISearchRequestor requestor, QuerySpecification querySpecification, org.eclipse.core.runtime.IProgressMonitor monitor)`
Executes the search described by the given `querySpecification`.

## Method Details

### search

void search(ISearchRequestor requestor, QuerySpecification querySpecification, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Executes the search described by the given `querySpecification`. Matches are reported to the given `requester`. The interpretation of what a given Java search (e.g. "References to class Foo") means is up to the participant.

Parameters:
  `requestor` - The requester to report matches to.
  `querySpecification` - The specification of the query to run.
  `monitor` - A monitor to report progress on.
Throws:
  `org.eclipse.core.runtime.CoreException` - Thrown when the search can not be executed

### estimateTicks

int estimateTicks(QuerySpecification specification)
Returns the number of units of work estimated. The returned number should be normalized such that the number of ticks for the original Java search job is 1000. For example if the participant uses the same amount of time as the Java search, it should return 1000, if it uses half the time, it should return 500, etc. This method is supposed to give a quick estimate of the work to be done and is assumed to be much faster than the actual query.

Parameters:
  `specification` - the specification to estimate.
Returns:
  The number of ticks estimated.

### getUIParticipant

IMatchPresentation getUIParticipant()
Gets the UI participant responsible for handling the display of elements not known to the Java search UI. The Java search UI knows elements are of type `IJavaElement` and `IResource`. A participant may return `null` if matches are only reported against elements of type `IResource` and `IJavaElement`.

Returns:
  The UI participant for this query participant or `null`.