Package org.eclipse.search.ui

# Interface ISearchQuery

public interface ISearchQuery
Represents a particular search query (in a Java example, a query might be "find all occurrences of 'foo' in workspace"). When its run method is called, the query places any results it finds in the `ISearchResult` that can be accessed via getSearchResult(). Note that `getSearchResult` may be called at any time, even before the `run()` method has been called. An empty search result should be returned in that case.

Clients may implement this interface.

Since:
  3.0

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canRerun()`
Returns whether the query can be run more than once.
`boolean`
`canRunInBackground()`
Returns whether this query can be run in the background.
`String`
`getLabel()`
Returns a user readable label for this query.
`ISearchResult`
`getSearchResult()`
Returns the search result associated with this query.
`IStatus`
`run(IProgressMonitor monitor)`
This is the method that actually does the work, i.e. finds the results of the search query.

## Method Details

### run

IStatus run(IProgressMonitor monitor) throws OperationCanceledException
This is the method that actually does the work, i.e. finds the results of the search query.

Parameters:
  `monitor` - the progress monitor to be used
Returns:
  the status after completion of the search job.
Throws:
  `OperationCanceledException` - Thrown when the search query has been canceled.

### getLabel

String getLabel()
Returns a user readable label for this query. This will be used, for example to set the `Job` name if this query is executed in the background. Note that progress notification (for example, the number of matches found) should be done via the progress monitor passed into the `run(IProgressMonitor)` method

Returns:
  the user readable label of this query

### canRerun

boolean canRerun()
Returns whether the query can be run more than once. Some queries may depend on transient information and return `false`.

Returns:
  whether this query can be run more than once

### canRunInBackground

boolean canRunInBackground()
Returns whether this query can be run in the background. Note that queries must do proper locking when they are run in the background (e.g. get the appropriate workspace locks).

Returns:
  whether this query can be run in the background

### getSearchResult

ISearchResult getSearchResult()
Returns the search result associated with this query. This method can be called before run is called.

Returns:
  this query's search result