org.eclipse.equinox.p2.query

## Class ExpressionQuery<T>

- java.lang.Object
- - org.eclipse.equinox.p2.query.ExpressionQuery<T>

All Implemented Interfaces:
  IQueryWithIndex<T>, IQuery<T>

    public class ExpressionQuery<T>
    extends Object
    implements IQueryWithIndex<T>

A query that evaluates using an iterator as input and produces a new iterator.

Since:
  2.0

### Constructor Summary

Constructors
Constructor and Description
`ExpressionQuery(Class<? extends T> elementClass, IExpression expression, Object... parameters)`
`ExpressionQuery(Class<? extends T> matchingClass, String expression, Object... parameters)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static <T> IContextExpression<T>` `createExpression(IQuery<T> query)`
`Class<? extends T>` `getElementClass()`
`static <T> Class<? extends T>` `getElementClass(IQuery<T> query)`
`IContextExpression<T>` `getExpression()` Returns the IExpression backing this query or `null` if this is not an expression query.
`IQueryResult<T>` `perform(IIndexProvider<T> indexProvider)` Evaluates the query using the `indexProvider`.
`IQueryResult<T>` `perform(Iterator<T> iterator)` Evaluates the query for a specific input.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ExpressionQuery

    public ExpressionQuery(Class<? extends T> elementClass,
                           IExpression expression,
                           Object... parameters)

#### ExpressionQuery

    public ExpressionQuery(Class<? extends T> matchingClass,
                           String expression,
                           Object... parameters)

### Method Detail

#### getElementClass

    public Class<? extends T> getElementClass()

#### perform

    public IQueryResult<T> perform(IIndexProvider<T> indexProvider)

Description copied from interface: `IQueryWithIndex`
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()`.

Specified by:
  `perform` in interface `IQueryWithIndex<T>`
Parameters:
  `indexProvider` - The provider of the material to evaluate the query on
Returns:
  The results of the query.

#### perform

    public IQueryResult<T> perform(Iterator<T> iterator)

Description copied from interface: `IQuery`
Evaluates the query for a specific input.

Specified by:
  `perform` in interface `IQuery<T>`
Parameters:
  `iterator` - The elements for which to evaluate the query on
Returns:
  The results of the query.

#### getExpression

    public IContextExpression<T> getExpression()

Description copied from interface: `IQuery`
Returns the IExpression backing this query or `null` if this is not an expression query.

Specified by:
  `getExpression` in interface `IQuery<T>`
Returns:
  An expression or `null`.

#### getElementClass

    public static <T> Class<? extends T> getElementClass(IQuery<T> query)

#### createExpression

    public static <T> IContextExpression<T> createExpression(IQuery<T> query)