Eclipse Platform
Release 3.6

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

java.lang.Object
  extended by org.eclipse.core.runtime.PlatformObject
      extended by org.eclipse.equinox.p2.repository.spi.AbstractRepository<IInstallableUnit>
          extended by 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.

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

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

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