Eclipse Platform Release 3.7

## org.eclipse.equinox.p2.repository.metadata.spi
Class AbstractMetadataRepository

    java.lang.Object
      org.eclipse.core.runtime.PlatformObject
          org.eclipse.equinox.p2.repository.spi.AbstractRepository<IInstallableUnit>
              org.eclipse.equinox.p2.repository.metadata.spi.AbstractMetadataRepository

All Implemented Interfaces:
  IAdaptable, IQueryable<IInstallableUnit>, IRepository<IInstallableUnit>, IMetadataRepository

    public abstract class AbstractMetadataRepository

extends AbstractRepository<IInstallableUnit>
implements IMetadataRepository

The common base class for all metadata repositories.

Clients may subclass this class.

Since:
  2.0

Nested Class Summary
`static class` `AbstractMetadataRepository.RepositoryState` A class that encapsulates the persisted state of a repository.

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`

Constructor Summary
`` `AbstractMetadataRepository(IProvisioningAgent agent)` Creates a new metadata repository that uses the provided agent.
`protected` `AbstractMetadataRepository(IProvisioningAgent agent, String name, String type, String version, URI location, String description, String provider, Map<String,String> properties)` Creates a new metadata repository with the provided repository information

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.
`abstract void` `initialize(AbstractMetadataRepository.RepositoryState state)` Initializes this class based on the provided previously persisted state
`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 class org.eclipse.equinox.p2.repository.spi.AbstractRepository
`assertModifiable, getDescription, getLocation, getName, getProperties, getProperty, getProvider, getProvisioningAgent, getType, getVersion, isModifiable, setDescription, setLocation, setName, setProperties, setProperty, setProperty, setProvider, setType, setVersion`

Methods inherited from class org.eclipse.core.runtime.PlatformObject
`getAdapter`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.eclipse.equinox.p2.repository.metadata.IMetadataRepository
`getReferences`

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`

Constructor Detail

### AbstractMetadataRepository

    public AbstractMetadataRepository(IProvisioningAgent agent)

  Creates a new metadata repository that uses the provided agent.

  Parameters:
    `agent` - the provisioning agent to be used by this repository

### AbstractMetadataRepository

    protected AbstractMetadataRepository(IProvisioningAgent agent,
                                         String name,
                                         String type,
                                         String version,
                                         URI location,
                                         String description,
                                         String provider,
                                         Map<String,String> properties)

  Creates a new metadata repository with the provided repository information

  Parameters:
    `agent` - the provisioning agent to be used by this repository
    `name` - the repository name
    `type` - the repository type
    `version` - the repository version
    `location` - the repository location
    `description` - the repository description
    `provider` - the repository provider
    `properties` - the repository properties

Method Detail

### initialize

    public abstract void initialize(AbstractMetadataRepository.RepositoryState state)

  Initializes this class based on the provided previously persisted state

  Parameters:
    `state` - the persisted repository state

### addInstallableUnits

    public void addInstallableUnits(Collection<IInstallableUnit> installableUnits)

  Add the given installable units to this repository.

  Specified by:
    `addInstallableUnits` in interface `IMetadataRepository`
  Parameters:
    `installableUnits` - the installable units to add

### addReferences

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

  Specified by:
    `addReferences` in interface `IMetadataRepository`
  Parameters:
    `references` - The references to add

### removeAll

    public void removeAll()

  Remove all installable units from this repository.

  Specified by:
    `removeAll` in interface `IMetadataRepository`

### removeInstallableUnits

    public boolean removeInstallableUnits(Collection<IInstallableUnit> installableUnits)

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

  Specified by:
    `removeInstallableUnits` in interface `IMetadataRepository`
  Parameters:
    `installableUnits` - the installable units to remove
  Returns:
    `true` if any units were actually removed, and `false` otherwise

### executeBatch

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

  Specified by:
    `executeBatch` in interface `IMetadataRepository`
  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

    public void compress(IPool<IInstallableUnit> iuPool)

  Description copied from interface: `IMetadataRepository`
  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 `IMetadataRepository.compress(IPool)` on subsequent repositories, the `IPool` can be discarded without adversely effecting the receiver.

  Specified by:
    `compress` in interface `IMetadataRepository`
  Since:
    2.1

Eclipse Platform Release 3.7

Guidelines for using Eclipse APIs.

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