Eclipse Platform
Release 3.6

org.eclipse.equinox.p2.repository.spi
Class AbstractRepository<T>

java.lang.Object
  extended by org.eclipse.core.runtime.PlatformObject
      extended by org.eclipse.equinox.p2.repository.spi.AbstractRepository<T>
Type Parameters:
T - the type of object that can be queried for in this repository
All Implemented Interfaces:
IAdaptable, IQueryable<T>, IRepository<T>
Direct Known Subclasses:
AbstractArtifactRepository, AbstractMetadataRepository

public abstract class AbstractRepository<T>
extends PlatformObject
implements IRepository<T>

AbstractRepository defines common properties that may be provided by various kinds of repositories.

Clients may extend this class.

Since:
2.0

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
protected AbstractRepository(IProvisioningAgent agent, String name, String type, String version, URI location, String description, String provider, Map<String,String> properties)
          Creates a new repository with the given attributes.
 
Method Summary
protected  void assertModifiable()
          Asserts that this repository is modifiable, throwing a runtime exception if it is not.
 String getDescription()
          Returns a brief description of the repository.
 URI getLocation()
          Returns the location of this repository.
 String getName()
          Returns the name of the repository.
 Map<String,String> getProperties()
          Returns a read-only collection of the properties of the repository.
 String getProperty(String key)
          Returns the repository property with the given key, or null if no such property is defined
 String getProvider()
          Returns the name of the provider of the repository.
 IProvisioningAgent getProvisioningAgent()
          Returns the provisioning agent used by this repository
 String getType()
          Returns a string representing the type of the repository.
 String getVersion()
          Returns a string representing the version for the repository type.
 boolean isModifiable()
          Returns true if this repository can be modified, and false otherwise.
 void setDescription(String description)
          Sets the description of this repository
protected  void setLocation(URI location)
          Sets the location of this repository
 void setName(String value)
          Sets the name of this repository
protected  void setProperties(Map<String,String> properties)
          Sets the properties of this repository
 String setProperty(String key, String value)
          Sets the value of the property with the given key.
 void setProvider(String provider)
          Sets the provider of this repository
protected  void setType(String type)
          Sets the type of this repository
protected  void setVersion(String version)
          Sets the version of this repository
 
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.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.equinox.p2.query.IQueryable
query
 

Constructor Detail

AbstractRepository

protected AbstractRepository(IProvisioningAgent agent,
                             String name,
                             String type,
                             String version,
                             URI location,
                             String description,
                             String provider,
                             Map<String,String> properties)
Creates a new repository with the given attributes.

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

assertModifiable

protected void assertModifiable()
Asserts that this repository is modifiable, throwing a runtime exception if it is not. This is suitable for use by subclasses when an attempt is made to write to a repository.


getDescription

public String getDescription()
Returns a brief description of the repository.

Specified by:
getDescription in interface IRepository<T>
Returns:
the description of the repository.

getLocation

public URI getLocation()
Returns the location of this repository. TODO: Should we use URL or URI? URL requires a protocol handler to be installed in Java. Can the URL have any protocol?

Specified by:
getLocation in interface IRepository<T>
Returns:
the URL of the repository.

getName

public String getName()
Returns the name of the repository.

Specified by:
getName in interface IRepository<T>
Returns:
the name of the repository.

getProperties

public Map<String,String> getProperties()
Returns a read-only collection of the properties of the repository.

Specified by:
getProperties in interface IRepository<T>
Returns:
the properties of this repository.

getProperty

public String getProperty(String key)
Returns the repository property with the given key, or null if no such property is defined

Specified by:
getProperty in interface IRepository<T>
Parameters:
key - the property key
Returns:
the property value, or null

getProvider

public String getProvider()
Returns the name of the provider of the repository.

Specified by:
getProvider in interface IRepository<T>
Returns:
the provider of this repository.

getProvisioningAgent

public IProvisioningAgent getProvisioningAgent()
Returns the provisioning agent used by this repository

Specified by:
getProvisioningAgent in interface IRepository<T>
Returns:
the provisioning agent

getType

public String getType()
Returns a string representing the type of the repository.

Specified by:
getType in interface IRepository<T>
Returns:
the type of the repository.

getVersion

public String getVersion()
Returns a string representing the version for the repository type.

Specified by:
getVersion in interface IRepository<T>
Returns:
the version of the type of the repository.

isModifiable

public boolean isModifiable()
Returns true if this repository can be modified, and false otherwise. Attempts to change the contents of an unmodifiable repository will fail.

Specified by:
isModifiable in interface IRepository<T>
Returns:
whether or not this repository can be modified

setDescription

public void setDescription(String description)
Sets the description of this repository

Parameters:
description - the repository description

setName

public void setName(String value)
Sets the name of this repository

Parameters:
value - the repository name

setProperty

public String setProperty(String key,
                          String value)
Sets the value of the property with the given key. Returns the old property associated with that key, if any. Setting a value of null will remove the corresponding key from the properties of this repository.

Specified by:
setProperty in interface IRepository<T>
Parameters:
key - The property key
value - The new property value, or null to remove the key
Returns:
The old property value, or null if there was no old value

setProvider

public void setProvider(String provider)
Sets the provider of this repository

Parameters:
provider - the repository provider

setType

protected void setType(String type)
Sets the type of this repository

Parameters:
type - the repository type

setLocation

protected void setLocation(URI location)
Sets the location of this repository

Parameters:
location - the repository location

setVersion

protected void setVersion(String version)
Sets the version of this repository

Parameters:
version - the repository version

setProperties

protected void setProperties(Map<String,String> properties)
Sets the properties of this repository

Parameters:
properties - the repository provider

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

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