Eclipse Platform Release 3.7

## org.eclipse.equinox.p2.repository.metadata
Interface IMetadataRepository

All Superinterfaces:
  IAdaptable, IQueryable<IInstallableUnit>, IRepository<IInstallableUnit>

All Known Implementing Classes:
  AbstractMetadataRepository

    public interface IMetadataRepository

extends IRepository<IInstallableUnit>

A metadata repository stores information about a set of installable units

This interface is not intended to be implemented by clients. Metadata repository implementations must subclass `AbstractMetadataRepository` rather than implementing this interface directly.

Since:
  2.0
Restriction:
  This interface is not intended to be implemented by clients. Instead subclass `AbstractMetadataRepository`

Field Summary

Fields inherited from interface org.eclipse.equinox.p2.repository.IRepository
`ENABLED, NONE, PREFERENCE_NODE, PROP_COMPRESSED, PROP_DESCRIPTION, PROP_MIRRORS_BASE_URL, PROP_MIRRORS_URL, PROP_NAME, PROP_NICKNAME, PROP_PASSWORD, PROP_SYSTEM, PROP_TIMESTAMP, PROP_USERNAME, TYPE_ARTIFACT, TYPE_METADATA`

Method Summary
`void` `addInstallableUnits(Collection<IInstallableUnit> installableUnits)` Add the given installable units to this repository.
`void` `addReferences(Collection<? extends IRepositoryReference> references)` Adds references to another repository to this repository.
`void` `compress(IPool<IInstallableUnit> iuPool)` Cause semantically equivalent IInstallableUnits in the receiver to be replaced with a shared object from the provided `IPool`.
`IStatus` `executeBatch(IRunnableWithProgress runnable, IProgressMonitor monitor)` Executes a runnable against this repository.
`Collection<IRepositoryReference>` `getReferences()` Returns the repositories that this repository is referencing.
`void` `removeAll()` Remove all installable units from this repository.
`boolean` `removeInstallableUnits(Collection<IInstallableUnit> installableUnits)` Removes all installable units in the given collection from this repository.

Methods inherited from interface org.eclipse.equinox.p2.repository.IRepository
`getDescription, getLocation, getName, getProperties, getProperty, getProvider, getProvisioningAgent, getType, getVersion, isModifiable, setProperty, setProperty`

Methods inherited from interface org.eclipse.core.runtime.IAdaptable
`getAdapter`

Methods inherited from interface org.eclipse.equinox.p2.query.IQueryable
`query`

Method Detail

### addInstallableUnits

    void addInstallableUnits(Collection<IInstallableUnit> installableUnits)

  Add the given installable units to this repository.

  Parameters:
    `installableUnits` - the installable units to add

### addReferences

    void addReferences(Collection<? extends IRepositoryReference> references)

  Adds references to another repository to this repository. When a repository is loaded by `IMetadataRepositoryManager`, its references are automatically added to the repository manager's set of known repositories.

  Note that this method does not add the contents of the given repositories to this repository, but merely adds the location of other repositories to the metadata of this repository.

  Parameters:
    `references` - The references to add

### getReferences

    Collection<IRepositoryReference> getReferences()

  Returns the repositories that this repository is referencing.

  Returns:
    An immutable collection of repository references, possibly empty but never `null`.

### removeInstallableUnits

    boolean removeInstallableUnits(Collection<IInstallableUnit> installableUnits)

  Removes all installable units in the given collection from this repository.

  Parameters:
    `installableUnits` - the installable units to remove
  Returns:
    `true` if any units were actually removed, and `false` otherwise

### removeAll

    void removeAll()

  Remove all installable units from this repository.

### executeBatch

    IStatus executeBatch(IRunnableWithProgress runnable,
                         IProgressMonitor monitor)

  Executes a runnable against this repository. It is up to the repository implementor to determine what "batch process" means, for example, it may mean that the repository index is not stored until after the runnable completes. The runnable should not execute anything in a separate thread.

  Parameters:
    `runnable` - The runnable to execute
    `monitor` - A progress monitor that will be passed to the runnable
  Returns:
    The result of running the runnable. Any exceptions thrown during the execution will be returned in the status.

### compress

    void compress(IPool<IInstallableUnit> iuPool)

  Cause semantically equivalent IInstallableUnits in the receiver to be replaced with a shared object from the provided `IPool`. New objects are added to the `IPool` as required.

  While the `IPool` should be retained to increase the scope of sharing when calling `compress(IPool)` on subsequent repositories, the `IPool` can be discarded without adversely effecting the receiver.

  Since:
    2.1

Eclipse Platform Release 3.7

Guidelines for using Eclipse APIs.

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