Class MetadataRepositoryFactory


  • public abstract class MetadataRepositoryFactory
    extends java.lang.Object
    A metadata repository factory is responsible for creating and loading instances of a particular type of metadata repository. Factories are provided via the org.eclipse.equinox.p2.metadata.repository.metadataRepositories extension point.
    Since:
    2.0
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract IMetadataRepository create​(java.net.URI location, java.lang.String name, java.lang.String type, java.util.Map<java.lang.String,​java.lang.String> properties)
      Creates and returns a new empty metadata repository of the given type at the given location.
      protected IProvisioningAgent getAgent()
      Returns the provisioning agent associated with this factory, or null if this factory is not associated with an agent.
      abstract IMetadataRepository load​(java.net.URI location, int flags, IProgressMonitor monitor)
      Loads a repository corresponding to the given URL.
      void setAgent​(IProvisioningAgent agent)
      Sets the provisioning agent associated with this repository factory.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MetadataRepositoryFactory

        public MetadataRepositoryFactory()
    • Method Detail

      • create

        public abstract IMetadataRepository create​(java.net.URI location,
                                                   java.lang.String name,
                                                   java.lang.String type,
                                                   java.util.Map<java.lang.String,​java.lang.String> properties)
                                            throws ProvisionException
        Creates and returns a new empty metadata repository of the given type at the given location.
        Parameters:
        location - the location for the new repository
        name - the name of the new repository
        type - the kind of repository to create
        properties - the properties to set on the repository
        Returns:
        the newly created repository
        Throws:
        ProvisionException - if the repository could not be created. Reasons include:
        • The repository type is not supported by this factory.
        • There was an error writing to the given repository location.
      • getAgent

        protected IProvisioningAgent getAgent()
        Returns the provisioning agent associated with this factory, or null if this factory is not associated with an agent.
        Returns:
        The provisioning agent, or null
      • load

        public abstract IMetadataRepository load​(java.net.URI location,
                                                 int flags,
                                                 IProgressMonitor monitor)
                                          throws ProvisionException
        Loads a repository corresponding to the given URL.

        The error code returned in the case of failure is significant. In particular an error code of ProvisionException.REPOSITORY_FAILED_READ indicates that the location definitely identifies a repository of this type, but an error occurred while loading the repository. The repository manager will not attempt to load a repository from that location using any other factory. An error code of ProvisionException.REPOSITORY_NOT_FOUND indicates there is no repository of this type at the given location, and the repository manager is free to try again with a different repository factory.

        The flags passed in should be taken as a hint for the type of repository to load. If the factory knows it will not load a repository that satisfies these hints, it can fail fast and return null.
        See IRepositoryManager.REPOSITORY_HINT_MODIFIABLE

        Parameters:
        location - The location of the repository to load
        flags - to consider while loading the repository
        monitor - a progress monitor, or null if progress reporting is not desired
        Returns:
        The loaded metadata repository
        Throws:
        ProvisionException - if the repository could not be created. Reasons include:
        • There is no existing repository at that location.
        • The repository at that location could not be read.
      • setAgent

        public void setAgent​(IProvisioningAgent agent)
        Sets the provisioning agent associated with this repository factory.
        Parameters:
        agent - The provisioning agent