Package org.eclipse.equinox.p2.metadata.index

## Interface IIndexProvider<T>

All Known Implementing Classes:
  `CompoundQueryable`, `org.eclipse.equinox.internal.p2.metadata.index.IndexProvider`

    public interface IIndexProvider<T>

An index provider is typically an IQueryable.

Since:
  2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`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.

### Method Detail

#### getIndex

    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.

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

#### everything

    Iterator<T> everything()

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`.

#### getManagedProperty

    Object getManagedProperty​(Object client,
                              String memberName,
                              Object key)

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.