## Uses of Interface
org.eclipse.equinox.p2.query.IQuery

Packages that use IQuery
org.eclipse.equinox.p2.engine: Provides support for interacting with the p2 provisioning engine Package Specification This package specifies API for interacting with the p2 provisioning engine.
org.eclipse.equinox.p2.engine.query: Provides queries specific to profiles Package Specification This package specifies API for querying the profile.
org.eclipse.equinox.p2.metadata.expression: Provides a simple expression language used to represent requirements and filters in the metadada Package Specification This package defines a simple expression language that is used to define requirements and filters in the metadata, but also form the base of the p2 query language.
org.eclipse.equinox.p2.metadata.index: Provides classes for metadata query indexing Package Specification This package provides API for creating and manipulating indices that are used to optimize queries against a particular queryable source.
org.eclipse.equinox.p2.query: Provides common classes for the query mechanism.
org.eclipse.equinox.p2.repository.artifact: Defines artifact repository.
org.eclipse.equinox.p2.touchpoint.eclipse.query: Provides query utilities specific to provisioning of OSGi bundles Package Specification This package specifies API for querying and manipulating provisioning metadata that is specific to OSGi bundles or Eclipse-specific constructs such as features.
org.eclipse.equinox.p2.ui: Provides provisioning user interface classes that can be used for assembling a provisioning UI.

### Uses of IQuery in org.eclipse.equinox.p2.engine

Methods in org.eclipse.equinox.p2.engine with parameters of type IQuery
`IQueryResult<IInstallableUnit>` IProfile.`available(IQuery<IInstallableUnit> query, IProgressMonitor monitor)` Returns the installable units in this profile that match the given query.

### Uses of IQuery in org.eclipse.equinox.p2.engine.query

Classes in org.eclipse.equinox.p2.engine.query that implement IQuery
`class` `IUProfilePropertyQuery` A query that searches for `IInstallableUnit` instances that have a property associated with the specified profile, whose value matches the provided value.
`class` `UserVisibleRootQuery` A query matching all the `IInstallableUnit`s that are marked visible to the user.

### Uses of IQuery in org.eclipse.equinox.p2.metadata.expression

Methods in org.eclipse.equinox.p2.metadata.expression with parameters of type IQuery
`IExpression` IExpressionFactory.`toExpression(IQuery<?> query)` Wrap an `IQuery` as an expression.

### Uses of IQuery in org.eclipse.equinox.p2.metadata.index

Subinterfaces of IQuery in org.eclipse.equinox.p2.metadata.index
`interface` `IQueryWithIndex<T>` An extension of the `IQuery` that allows use of indexes.

### Uses of IQuery in org.eclipse.equinox.p2.query

Subinterfaces of IQuery in org.eclipse.equinox.p2.query

`interface`

`IMatchQuery<T>`
Deprecated.
If possible, use one of the predefined queries in `QueryUtil` or use the `QueryUtil.createMatchQuery(String, Object...)` to create a custom expression based query. If the query cannot be expressed using the p2QL, then use a predefined or custom expression query as a first filter (in worst case, use `QueryUtil.createIUAnyQuery()`) and then provide further filtering like so:

     for(iter = queryable.query(someExpressionQuery).iterator(); iter.hasNext();) {
       // do your match here
     }

Classes in org.eclipse.equinox.p2.query that implement IQuery
`class` `ExpressionMatchQuery<T>` A query that matches candidates against an expression.
`class` `ExpressionQuery<T>` A query that evaluates using an iterator as input and produces a new iterator.

`class`

`MatchQuery<T>`
Deprecated.
If possible, use one of the predefined queries in `QueryUtil` or use the `QueryUtil.createMatchQuery(String, Object...)` to create a custom expression based query. If the query cannot be expressed using the p2QL, then use a predefined or custom expression query as a first filter (in worst case, use `QueryUtil.createIUAnyQuery()`) and then provide further filtering like so:

     for(iter = queryable.query(someExpressionQuery).iterator(); iter.hasNext();) {
       // do your match here
     }

Fields in org.eclipse.equinox.p2.query declared as IQuery
`static IQuery<IInstallableUnit>` QueryUtil.`ALL_UNITS`
`static IQuery<IInstallableUnit>` QueryUtil.`NO_UNITS`

Methods in org.eclipse.equinox.p2.query that return IQuery
`static <T> IQuery<T>` QueryUtil.`createCompoundQuery(Collection<? extends IQuery<? extends T>> queries, boolean and)` Creates a compound query that combines the given queries.
`static <T> IQuery<T>` QueryUtil.`createCompoundQuery(IQuery<? extends T> query1, IQuery<T> query2, boolean and)` Creates a compound query that combines the two queries.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUAnyQuery()` Returns a query that matches all `InstallableUnit` elements
`static IQuery<IInstallableUnit>` QueryUtil.`createIUCategoryMemberQuery(IInstallableUnit category)` Creates a new query that will return the members of the given `category`.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUCategoryQuery()` Creates a query matching every `IInstallableUnit` that is a category.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUGroupQuery()` Creates a query matching every `IInstallableUnit` that is a group.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUPatchQuery()` Creates an `IInstallableUnit` that will match all patches.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUProductQuery()` Creates an `IInstallableUnit` that will match all products.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUPropertyQuery(String propertyName, String propertyValue)` Creates a query that searches for `IInstallableUnit` instances that have a property whose value matches the provided value.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(IVersionedId versionedId)` Creates a query that will match any `IInstallableUnit` with the given id and version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id)` Creates a query that will match any `IInstallableUnit` with the given id, regardless of version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id, Version version)` Creates a query that will match any `IInstallableUnit` with the given id and version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id, VersionRange range)` Creates a query that will match any `IInstallableUnit` with the given id, and whose version falls in the provided range.
`static IQuery<IInstallableUnit>` QueryUtil.`createLatestIUQuery()` Creates a query that returns the latest version for each unique id of an `IVersionedId`.
`static <T extends IVersionedId> IQuery<T>` QueryUtil.`createLatestQuery(IQuery<T> query)` Creates a query that returns the latest version for each unique id of an `IVersionedId` from the collection produced by `query`.
`static <T> IQuery<T>` QueryUtil.`createLimitQuery(IQuery<T> query, int limit)` Creates a limit query that can be used to limit the number of query results returned.
`static <T> IQuery<T>` QueryUtil.`createMatchQuery(Class<? extends T> matchingClass, IExpression matchExpression, Object... parameters)` Creates an query that will iterate over all candidates and discriminate all candidates that are not instances of `matchinClass>` or for which the boolean `matchExpression` returns false.
`static <T> IQuery<T>` QueryUtil.`createMatchQuery(Class<? extends T> matchingClass, String matchExpression, Object... parameters)` Parses the `matchExpression` and creates an query that will iterate over all candidates and discriminate all candidates that are not instances of `matchinClass>` or for which the boolean `matchExpression` returns false.
`static IQuery<IInstallableUnit>` QueryUtil.`createMatchQuery(IExpression matchExpression, Object... parameters)` Creates an `IInstallableUnit` query that will iterate over all candidates and discriminate by applying the boolean `matchExpression` on each candidate.
`static IQuery<IInstallableUnit>` QueryUtil.`createMatchQuery(String matchExpression, Object... parameters)` Parses the `matchExpression` and creates an `IInstallableUnit` query that will iterate over all candidates and discriminate by applying the boolean `matchExpression` on each candidate.
`static <T> IQuery<T>` QueryUtil.`createPipeQuery(Collection<? extends IQuery<? extends T>> queries)` Creates a piped query based on the provided input queries.
`static <T> IQuery<T>` QueryUtil.`createPipeQuery(IQuery<? extends T> query1, IQuery<? extends T> query2)` Creates a piped query based on the provided input queries.
`static <T> IQuery<T>` QueryUtil.`createQuery(Class<? extends T> matchingClass, IExpression expression, Object... parameters)` Creates a query that will limit the result to instances of the `matchinClass`.
`static <T> IQuery<T>` QueryUtil.`createQuery(Class<? extends T> matchingClass, String expression, Object... parameters)` Parses the `expression` and creates a query that will limit the result to instances of the `matchinClass`.
`static IQuery<IInstallableUnit>` QueryUtil.`createQuery(IExpression expression, Object... parameters)` Creates an `IInstallableUnit` query based on an `expression` that uses all candidates as input.
`static IQuery<IInstallableUnit>` QueryUtil.`createQuery(String expression, Object... parameters)` Parses the `expression` and creates an `IInstallableUnit` query.

Methods in org.eclipse.equinox.p2.query with parameters of type IQuery
`static <T> IQuery<T>` QueryUtil.`createCompoundQuery(IQuery<? extends T> query1, IQuery<T> query2, boolean and)` Creates a compound query that combines the two queries.
`static <T> IQuery<T>` QueryUtil.`createCompoundQuery(IQuery<? extends T> query1, IQuery<T> query2, boolean and)` Creates a compound query that combines the two queries.
`static <T> IContextExpression<T>` ExpressionQuery.`createExpression(IQuery<T> query)`
`static <T extends IVersionedId> IQuery<T>` QueryUtil.`createLatestQuery(IQuery<T> query)` Creates a query that returns the latest version for each unique id of an `IVersionedId` from the collection produced by `query`.
`static <T> IQuery<T>` QueryUtil.`createLimitQuery(IQuery<T> query, int limit)` Creates a limit query that can be used to limit the number of query results returned.
`static <T> IQuery<T>` QueryUtil.`createPipeQuery(IQuery<? extends T> query1, IQuery<? extends T> query2)` Creates a piped query based on the provided input queries.
`static <T> IQuery<T>` QueryUtil.`createPipeQuery(IQuery<? extends T> query1, IQuery<? extends T> query2)` Creates a piped query based on the provided input queries.
`static <T> Class<? extends T>` ExpressionQuery.`getElementClass(IQuery<T> query)`
`IQueryResult<T>` Collector.`query(IQuery<T> query, IProgressMonitor monitor)` Performs a query on this results of this collector.
`IQueryResult<T>` CollectionResult.`query(IQuery<T> query, IProgressMonitor monitor)`
`IQueryResult<T>` IQueryable.`query(IQuery<T> query, IProgressMonitor monitor)` Performs a query, passing any objects that satisfy the query to the provided collector.

Method parameters in org.eclipse.equinox.p2.query with type arguments of type IQuery
`static <T> IQuery<T>` QueryUtil.`createCompoundQuery(Collection<? extends IQuery<? extends T>> queries, boolean and)` Creates a compound query that combines the given queries.
`static <T> IQuery<T>` QueryUtil.`createPipeQuery(Collection<? extends IQuery<? extends T>> queries)` Creates a piped query based on the provided input queries.

### Uses of IQuery in org.eclipse.equinox.p2.repository.artifact

Classes in org.eclipse.equinox.p2.repository.artifact that implement IQuery
`class` `ArtifactDescriptorQuery` A general purpose query for matching `IArtifactDescriptor` instances that satisfy various criteria.
`class` `ArtifactKeyQuery` A general purpose query for matching `IArtifactKey` instances that satisfy various criteria.

### Uses of IQuery in org.eclipse.equinox.p2.touchpoint.eclipse.query

Classes in org.eclipse.equinox.p2.touchpoint.eclipse.query that implement IQuery
`class` `OSGiBundleQuery` A query matching every `IInstallableUnit` that describes an OSGi bundle.

### Uses of IQuery in org.eclipse.equinox.p2.ui

Methods in org.eclipse.equinox.p2.ui that return IQuery
`IQuery<IInstallableUnit>` Policy.`getVisibleAvailableIUQuery()` Return a query that can be used to obtain the IInstallableUnits that should be presented to the user from the software repositories.
`IQuery<IInstallableUnit>` Policy.`getVisibleInstalledIUQuery()` Return a query that can be used to obtain the IInstallableUnits in the profile that should be presented to the user.

Methods in org.eclipse.equinox.p2.ui with parameters of type IQuery
`void` Policy.`setVisibleAvailableIUQuery(IQuery<IInstallableUnit> query)` Set the query that can be used to obtain the IInstallableUnits that should be presented to the user.
`void` Policy.`setVisibleInstalledIUQuery(IQuery<IInstallableUnit> query)` Set the query that can be used to obtain the IInstallableUnits in the profile that should be presented to the user.