Package org.eclipse.equinox.p2.metadata.expression

# Interface IContextExpression<T>

All Superinterfaces:
  `IExpression`

public interface IContextExpression<T> extends IExpression
This is an expression that will need access to the global variable `everything`.

Since:
  2.0

## Field Summary

### Fields inherited from interface org.eclipse.equinox.p2.metadata.expression.IExpression

`TYPE_ALL, TYPE_AND, TYPE_ARRAY, TYPE_ASSIGNMENT, TYPE_AT, TYPE_COLLECT, TYPE_CONDITION, TYPE_EQUALS, TYPE_EXISTS, TYPE_FIRST, TYPE_FLATTEN, TYPE_FUNCTION, TYPE_GREATER, TYPE_GREATER_EQUAL, TYPE_INTERSECT, TYPE_LAMBDA, TYPE_LATEST, TYPE_LESS, TYPE_LESS_EQUAL, TYPE_LIMIT, TYPE_LITERAL, TYPE_MATCHES, TYPE_MEMBER, TYPE_NOT, TYPE_NOT_EQUALS, TYPE_OR, TYPE_PARAMETER, TYPE_PIPE, TYPE_SELECT, TYPE_TRAVERSE, TYPE_UNION, TYPE_UNIQUE, TYPE_VARIABLE`

## Method Summary

Modifier and Type
Method
Description
`IEvaluationContext`
`createContext(Class<? extends T> elementClass, Iterator<T> everything)`
Creates a new context to be passed to a subsequent evaluation.
`IEvaluationContext`
`createContext(Class<? extends T> elementClass, IIndexProvider<T> indexProvider)`
Creates a new context to be passed to a subsequent evaluation.
`Object[]`
`getParameters()`
Returns the parameters that this context expression was created with.
`Iterator<T>`
`iterator(IEvaluationContext context)`
Evaluate the expression and return the expected collection result as an iterator

### Methods inherited from interface org.eclipse.equinox.p2.metadata.expression.IExpression

`accept, evaluate, getExpressionType, toLDAPString, toLDAPString, toString, toString`

## Method Details

### createContext

IEvaluationContext createContext(Class<? extends T> elementClass, IIndexProvider<T> indexProvider)

Creates a new context to be passed to a subsequent evaluation. The context will have the variable 'everything' set to an expression that represents the `everything` iterator filtered for instances of `elementClass`.

The values of the iterator will be copied if necessary (when everything is referenced more then once).

Parameters:
  `elementClass` - the class of the iterator elements
  `indexProvider` - The index provider that represents all queried material.
Returns:
  A new evaluation context.

### createContext

IEvaluationContext createContext(Class<? extends T> elementClass, Iterator<T> everything)

Creates a new context to be passed to a subsequent evaluation. The context will have the variable 'everything' set to an expression that represents the `everything` iterator filtered for instances of `elementClass`.

The values of the iterator will be copied if necessary (when everything is referenced more then once).

Parameters:
  `elementClass` - the class of the iterator elements
  `everything` - The iterator that represents all queried material.
Returns:
  A new evaluation context.

### getParameters

Object[] getParameters()
Returns the parameters that this context expression was created with.

Returns:
  An array of parameters, possibly empty but never `null`.

### iterator

Iterator<T> iterator(IEvaluationContext context)
Evaluate the expression and return the expected collection result as an iterator

Parameters:
  `context` - The evaluation context
Returns:
  The result of the evaluation.