Eclipse Platform
Release 3.6

org.eclipse.equinox.p2.query
Class MatchQuery<T>

java.lang.Object
  extended by org.eclipse.equinox.p2.query.MatchQuery<T>
All Implemented Interfaces:
IMatchQuery<T>, IQuery<T>

public abstract class MatchQuery<T>
extends Object
implements IMatchQuery<T>

This class represents the superclass of most of p2's queries. Every element in the query can be evaluated by calling isMatch on it. If isMatch(Object) returns true, then the element WILL be included in the query result. If isMatch(Object) returns false, then the element WILL NOT be included in the query result.

This class may be subclassed by clients. Subclasses should specify the type of object they support querying on. Subclasses are also encouraged to clearly specify their match algorithm, and expose the parameters involved in the match computation, to allow IQueryable implementations to optimize their execution of the query.

Since:
2.0

Constructor Summary
MatchQuery()
           
 
Method Summary
 IExpression getExpression()
          Returns the IExpression backing this query of null if this is not an expression query.
abstract  boolean isMatch(T candidate)
          Returns whether the given object satisfies the parameters of this query.
 IQueryResult<T> perform(Iterator<T> iterator)
          Performs this query on the given iterator, passing all objects in the iterator that match the criteria of this query to the given result.
 void postPerform()
          Execute any post-processing that must be done after this query has been performed against a particular iterator.
 void prePerform()
          Execute any pre-processing that must be done before this query is performed against a particular iterator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MatchQuery

public MatchQuery()
Method Detail

isMatch

public abstract boolean isMatch(T candidate)
Returns whether the given object satisfies the parameters of this query.

Specified by:
isMatch in interface IMatchQuery<T>
Parameters:
candidate - The object to perform the query against
Returns:
true if the unit satisfies the parameters of this query, and false otherwise
Restriction:
This method is not intended to be referenced by clients. Clients should call perform(Iterator)

perform

public final IQueryResult<T> perform(Iterator<T> iterator)
Performs this query on the given iterator, passing all objects in the iterator that match the criteria of this query to the given result.

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

prePerform

public void prePerform()
Execute any pre-processing that must be done before this query is performed against a particular iterator. This method may be used by subclasses to do any calculations, caching, or other preparation for the query.

This method is internal to the framework. Subclasses may override this method, but should not call this method.

Restriction:
This method is not intended to be referenced by clients.

postPerform

public void postPerform()
Execute any post-processing that must be done after this query has been performed against a particular iterator. This method may be used by subclasses to clear caches or any other cleanup that should occur after a query.

This method will be called even if the query does not complete successfully.

This method is internal to the framework. Subclasses may override this method, but should not call this method.

Restriction:
This method is not intended to be referenced by clients.

getExpression

public IExpression getExpression()
Description copied from interface: IQuery
Returns the IExpression backing this query of null if this is not an expression query.

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

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2010. All rights reserved.