Package org.eclipse.equinox.p2.metadata.index

# Interface IQueryWithIndex<T>

All Superinterfaces:
  `IQuery<T>`

All Known Implementing Classes:
  `ArtifactDescriptorQuery`, `ArtifactKeyQuery`, `ExpressionMatchQuery`, `ExpressionQuery`, `IUProfilePropertyQuery`, `OSGiBundleQuery`, `UserVisibleRootQuery`

public interface IQueryWithIndex<T> extends IQuery<T>
An extension of the `IQuery` that allows use of indexes.

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`IQueryResult<T>`
`perform(IIndexProvider<T> indexProvider)`
Evaluates the query using the `indexProvider`.

### Methods inherited from interface org.eclipse.equinox.p2.query.IQuery

`getExpression, perform`

## Method Details

### perform

IQueryResult<T> perform(IIndexProvider<T> indexProvider)
Evaluates the query using the `indexProvider`. The query is first analyzed for index candidates (typically expressions like id == <some value>) and if possible, indexes returned by `IIndexProvider.getIndex(String)` will be used in place of the iterator returned by `IIndexProvider.everything()`.

Parameters:
  `indexProvider` - The provider of the material to evaluate the query on
Returns:
  The results of the query.