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

## Interface IMatchExpression<T>

All Superinterfaces:
  `IExpression`

    public interface IMatchExpression<T>
    extends IExpression

A match expression is a boolean expression matching a candidate of a specific type. An `IEvaluationContext` is needed in order to evaluate a match and this class provides two ways of doing that. Either a context is created first and then reused in several subsequent calls to `isMatch(IEvaluationContext, Object)` or, if no repeated calls are expected, the `isMatch(Object)` method can be used. It will then create a context on each call.

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

All Methods Instance Methods Abstract Methods
`IEvaluationContext` `createContext()` Creates a new context to be passed to repeated subsequent evaluations.
`Object[]` `getParameters()` Returns the parameters that this match expression was created with.
`boolean` `isMatch​(IEvaluationContext context, T candidate)` This method assigns `candidate` to the 'this' variable of the `context` and then evaluates the expression.
`boolean` `isMatch​(T candidate)` This method creates a new evaluation context and assigns the `candidate` to the 'this' variable of the `context` and then evaluates the expression.

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

`accept, evaluate, getExpressionType, toLDAPString, toString`

### Method Detail

#### createContext

    IEvaluationContext createContext()

Creates a new context to be passed to repeated subsequent evaluations. The context will introduce 'this' as an uninitialized variable and make the parameters available.

Returns:
  A new evaluation context.

#### getParameters

    Object[] getParameters()

Returns the parameters that this match expression was created with.

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

#### isMatch

    boolean isMatch​(T candidate)

This method creates a new evaluation context and assigns the `candidate` to the 'this' variable of the `context` and then evaluates the expression. This is essentially a short form for

    isMatch(createContext(), candidate)

.

Parameters:
  `candidate` - The object to test.
Returns:
  the result of the evaluation.

#### isMatch

    boolean isMatch​(IEvaluationContext context,
                    T candidate)

This method assigns `candidate` to the 'this' variable of the `context` and then evaluates the expression.

Parameters:
  `context` - A context
  `candidate` - The object to test.
Returns:
  the result of the evaluation.