Interface IdentifierService

  • All Known Implementing Classes:
    IdentifierServiceImpl

    public interface IdentifierService
    Author:
    Fabio Bolognesi (fabio at atmire dot com), Mark Diggory (markd at atmire dot com), Ben Bosman (ben at atmire dot com)
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void delete​(Context context, DSpaceObject dso)
      Delete (Unbind) all identifiers registered for a specific DSpace item.
      void delete​(Context context, DSpaceObject dso, String identifier)
      Used to Delete a Specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for Detecting and Processing the appropriate identifier, all Providers are interrogated, multiple providers can process the same identifier.
      List<String> lookup​(Context context, DSpaceObject dso)
      Gets the identifiers all registered IdentifierProvider returns if asked to lookup the provided DSpaceObject.
      String lookup​(Context context, DSpaceObject dso, Class<? extends Identifier> identifier)
      Get an identifier for a given object which is assignment-compatible with a given Identifier type.
      void register​(Context context, DSpaceObject dso)  
      void register​(Context context, DSpaceObject dso, String identifier)
      Used to Register a specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for detecting and processing the appropriate identifier.
      void reserve​(Context context, DSpaceObject dso)
      Reserves any identifiers necessary based on the capabilities of all providers in the service.
      void reserve​(Context context, DSpaceObject dso, String identifier)
      Used to Reserve a Specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for Detecting and Processing the appropriate identifier, all Providers are interrogated, multiple providers can process the same identifier.
      DSpaceObject resolve​(Context context, String identifier)
      This will resolve a DSpaceObject based on a provided Identifier.
    • Method Detail

      • lookup

        String lookup​(Context context,
                      DSpaceObject dso,
                      Class<? extends Identifier> identifier)
        Get an identifier for a given object which is assignment-compatible with a given Identifier type.
        Parameters:
        context - The relevant DSpace Context.
        dso - the object to be identified.
        identifier - instance of an Identifier of the required type.
        Returns:
        the matching identifier, or the site identifier if the object is a Site, or null if no matching identifier is found.
      • lookup

        List<String> lookup​(Context context,
                            DSpaceObject dso)
        Gets the identifiers all registered IdentifierProvider returns if asked to lookup the provided DSpaceObject.
        Parameters:
        context - The relevant DSpace Context.
        dso - the object to be identified.
        Returns:
        the matching identifiers, or the site identifier if the object is a Site, or an empty array if no matching identifier is found.
      • resolve

        DSpaceObject resolve​(Context context,
                             String identifier)
                      throws IdentifierNotFoundException,
                             IdentifierNotResolvableException
        This will resolve a DSpaceObject based on a provided Identifier. The Service will interrogate the providers in no particular order and return the first successful result discovered. If no resolution is successful, the method will return null if no object is found. TODO: Verify null is returned.
        Parameters:
        context - The relevant DSpace Context.
        identifier - instance of an Identifier of the required type.
        Returns:
        the DSpace object associated with the identifier
        Throws:
        IdentifierNotFoundException - if identifier not found
        IdentifierNotResolvableException - if identifier not resolvable
      • reserve

        void reserve​(Context context,
                     DSpaceObject dso,
                     String identifier)
              throws AuthorizeException,
                     SQLException,
                     IdentifierException
        Used to Reserve a Specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for Detecting and Processing the appropriate identifier, all Providers are interrogated, multiple providers can process the same identifier.
        Parameters:
        context - The relevant DSpace Context.
        dso - DSpace object to be reserved
        identifier - instance of an Identifier of the required type.
        Throws:
        AuthorizeException - if authorization error
        SQLException - if database error
        IdentifierException - if identifier error
      • register

        void register​(Context context,
                      DSpaceObject dso,
                      String identifier)
               throws AuthorizeException,
                      SQLException,
                      IdentifierException
        Used to Register a specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for detecting and processing the appropriate identifier. All Providers are interrogated. Multiple providers can process the same identifier.
        Parameters:
        context - The relevant DSpace Context.
        dso - DSpace object to be registered
        identifier - instance of an Identifier of the required type.
        Throws:
        AuthorizeException - if authorization error
        SQLException - if database error
        IdentifierException - if identifier error
      • delete

        void delete​(Context context,
                    DSpaceObject dso,
                    String identifier)
             throws AuthorizeException,
                    SQLException,
                    IdentifierException
        Used to Delete a Specific Identifier (for example a Handle, hdl:1234.5/6) The provider is responsible for Detecting and Processing the appropriate identifier, all Providers are interrogated, multiple providers can process the same identifier.
        Parameters:
        context - The relevant DSpace Context.
        dso - DSpace object to be deleted
        identifier - instance of an Identifier of the required type.
        Throws:
        AuthorizeException - if authorization error
        SQLException - if database error
        IdentifierException - if identifier error