# Class CollectionResult<T>

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

All Implemented Interfaces:
  `Iterable<T>, IQueryable<T>, IQueryResult<T>`

public class CollectionResult<T> extends Object implements IQueryResult<T>
This class allows to adapt java collections to a p2 a query result and as such something queryable

Since:
  2.0

## Constructor Summary

Constructors
Constructor
Description
`CollectionResult(Collection<T> collection)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`isEmpty()`
Returns whether this QueryResult is empty.
`Iterator<T>`
`iterator()`
Returns an iterator on the collected objects.
`IQueryResult<T>`
`query(IQuery<T> query, IProgressMonitor monitor)`
Performs a query, passing any objects that satisfy the query to the provided collector.
`Stream<T>`
`stream()`
Returns a sequential `Stream` of the collected objects.
`T[]`
`toArray(Class<T> clazz)`
Returns the collected objects as an array
`Set<T>`
`toSet()`
Creates a new Set copy with the contents of this query result.
`String`
`toString()`
`Set<T>`
`toUnmodifiableSet()`
Returns a Set backed by this query result.

### Methods inherited from class Object

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

### Methods inherited from interface IQueryable

`contains`

### Methods inherited from interface Iterable

`forEach, spliterator`

## Constructor Details

### CollectionResult

public CollectionResult(Collection<T> collection)

## Method Details

### query

public IQueryResult<T> query(IQuery<T> query, IProgressMonitor monitor)
Description copied from interface: `IQueryable`
Performs a query, passing any objects that satisfy the query to the provided collector.

This method is long-running; progress and cancellation are provided by the given progress monitor.

Specified by:
  `query` in interface `IQueryable<T>`
Parameters:
  `query` - The query to perform
  `monitor` - a progress monitor, or `null` if progress reporting is not desired
Returns:
  The collector argument

### isEmpty

public boolean isEmpty()
Description copied from interface: `IQueryResult`
Returns whether this QueryResult is empty.

Specified by:
  `isEmpty` in interface `IQueryResult<T>`
Returns:
  `true` if this QueryResult has accepted any results, and `false` otherwise.

### iterator

public Iterator<T> iterator()
Description copied from interface: `IQueryResult`
Returns an iterator on the collected objects.

Specified by:
  `iterator` in interface `IQueryResult<T>`
Specified by:
  `iterator` in interface `Iterable<T>`
Returns:
  an iterator of the collected objects.

### toArray

public T[] toArray(Class<T> clazz)
Description copied from interface: `IQueryResult`
Returns the collected objects as an array

Specified by:
  `toArray` in interface `IQueryResult<T>`
Parameters:
  `clazz` - The type of array to return
Returns:
  The array of results

### toSet

public Set<T> toSet()
Description copied from interface: `IQueryResult`
Creates a new Set copy with the contents of this query result. The copy can be altered without any side effects on its origin.

Specified by:
  `toSet` in interface `IQueryResult<T>`
Returns:
  A detached copy of the result.

### toUnmodifiableSet

public Set<T> toUnmodifiableSet()
Description copied from interface: `IQueryResult`
Returns a Set backed by this query result. The set is immutable.

Specified by:
  `toUnmodifiableSet` in interface `IQueryResult<T>`
Returns:
  A Set backed by this query result.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### stream

public Stream<T> stream()
Description copied from interface: `IQueryResult`
Returns a sequential `Stream` of the collected objects.

Specified by:
  `stream` in interface `IQueryResult<T>`