# Class CompoundQueryable<T>

java.lang.Object
org.eclipse.equinox.internal.p2.metadata.index.IndexProvider<T>
org.eclipse.equinox.p2.query.CompoundQueryable<T>

All Implemented Interfaces:
  `IIndexProvider<T>, IQueryable<T>`

public final class CompoundQueryable<T> extends org.eclipse.equinox.internal.p2.metadata.index.IndexProvider<T>
A queryable that holds a number of other IQueryables and provides a mechanism for querying the entire set.

Since:
  2.0

## Constructor Summary

Constructors
Constructor
Description
`CompoundQueryable(Collection<? extends IQueryable<T>> queryables)`
Creates a queryable that combines the given collection of input queryables
`CompoundQueryable(IQueryable<T>[] queryables)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`contains(T element)`
Returns true if this queryable contains the given element, else false.
`Iterator<T>`
`everything()`
Return the iterator that delivers all rows that the target query should consider.
`IIndex<T>`
`getIndex(String memberName)`
Return an index optimized for producing candidates based on values for a `memberName` that denotes a member of the index type.
`Object`
`getManagedProperty(Object client, String memberName, Object key)`
Returns a property that this index manages on behalf of a `client` object.

### Methods inherited from class org.eclipse.equinox.internal.p2.metadata.index.IndexProvider

`query, query`

### Methods inherited from class Object

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

## Constructor Details

### CompoundQueryable

public CompoundQueryable(IQueryable<T>[] queryables)

### CompoundQueryable

public CompoundQueryable(Collection<? extends IQueryable<T>> queryables)
Creates a queryable that combines the given collection of input queryables

Parameters:
  `queryables` - The collection of queryables to be combined
Since:
  2.8

## Method Details

### getIndex

public IIndex<T> getIndex(String memberName)
Description copied from interface: `IIndexProvider`
Return an index optimized for producing candidates based on values for a `memberName` that denotes a member of the index type.

Parameters:
  `memberName` - A member of type `T`.
Returns:
  An index or `null` if this provider does not support this index.

### everything

public Iterator<T> everything()
Description copied from interface: `IIndexProvider`
Return the iterator that delivers all rows that the target query should consider. This is used when no index can be found for any possible member.

Returns:
  An iterator. Possibly empty but never `null`.

### contains

public boolean contains(T element)
Description copied from interface: `IQueryable`
Returns true if this queryable contains the given element, else false.

Parameters:
  `element` - the element to query for
Returns:
  true if the given element is found in this queryable

### getManagedProperty

public Object getManagedProperty(Object client, String memberName, Object key)
Description copied from interface: `IIndexProvider`
Returns a property that this index manages on behalf of a `client` object. Examples of this is the properties that a profile manages for installable units.

Parameters:
  `client` - The client for which the property is managed. Typically an IU.
  `memberName` - The name of the managed properties, i.e. "profileProperties"
  `key` - The property key
Returns:
  The managed property value or `null` if no value could be found.