Package org.dspace.identifier
Class IdentifierServiceImpl
- java.lang.Object
-
- org.dspace.identifier.IdentifierServiceImpl
-
- All Implemented Interfaces:
IdentifierService
public class IdentifierServiceImpl extends Object implements IdentifierService
The main service class used to reserve, register and resolve identifiers- Author:
- Fabio Bolognesi (fabio at atmire dot com), Mark Diggory (markd at atmire dot com), Ben Bosman (ben at atmire dot com)
-
-
Field Summary
Fields Modifier and Type Field Description protected ContentServiceFactorycontentServiceFactoryprotected HandleServicehandleService
-
Constructor Summary
Constructors Modifier Constructor Description protectedIdentifierServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddelete(Context context, DSpaceObject dso)Delete (Unbind) all identifiers registered for a specific DSpace item.voiddelete(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.Stringlookup(Context context, DSpaceObject dso, Class<? extends Identifier> identifier)Get an identifier for a given object which is assignment-compatible with a given Identifier type.voidregister(Context context, DSpaceObject dso)voidregister(Context context, DSpaceObject object, 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.voidreserve(Context context, DSpaceObject dso)Reserves identifiers for the itemvoidreserve(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.DSpaceObjectresolve(Context context, String identifier)This will resolve a DSpaceObject based on a provided Identifier.voidsetProviders(List<IdentifierProvider> providers)
-
-
-
Field Detail
-
contentServiceFactory
@Autowired(required=true) protected ContentServiceFactory contentServiceFactory
-
handleService
@Autowired(required=true) protected HandleService handleService
-
-
Method Detail
-
setProviders
@Autowired(required=true) public void setProviders(List<IdentifierProvider> providers)
-
reserve
public void reserve(Context context, DSpaceObject dso) throws AuthorizeException, SQLException, IdentifierException
Reserves identifiers for the item- Specified by:
reservein interfaceIdentifierService- Parameters:
context- dspace contextdso- dspace object- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
reserve
public void reserve(Context context, DSpaceObject dso, String identifier) throws AuthorizeException, SQLException, IdentifierException
Description copied from interface:IdentifierServiceUsed 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.- Specified by:
reservein interfaceIdentifierService- Parameters:
context- The relevant DSpace Context.dso- DSpace object to be reservedidentifier- instance of an Identifier of the required type.- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
register
public void register(Context context, DSpaceObject dso) throws AuthorizeException, SQLException, IdentifierException
- Specified by:
registerin interfaceIdentifierService- Parameters:
context- The relevant DSpace Context.dso- DSpace object to be registered- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
register
public void register(Context context, DSpaceObject object, String identifier) throws AuthorizeException, SQLException, IdentifierException
Description copied from interface:IdentifierServiceUsed 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.- Specified by:
registerin interfaceIdentifierService- Parameters:
context- The relevant DSpace Context.object- DSpace object to be registeredidentifier- instance of an Identifier of the required type.- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
lookup
public String lookup(Context context, DSpaceObject dso, Class<? extends Identifier> identifier)
Description copied from interface:IdentifierServiceGet an identifier for a given object which is assignment-compatible with a given Identifier type.- Specified by:
lookupin interfaceIdentifierService- 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
public List<String> lookup(Context context, DSpaceObject dso)
Description copied from interface:IdentifierServiceGets the identifiers all registered IdentifierProvider returns if asked to lookup the provided DSpaceObject.- Specified by:
lookupin interfaceIdentifierService- 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
public DSpaceObject resolve(Context context, String identifier) throws IdentifierNotFoundException, IdentifierNotResolvableException
Description copied from interface:IdentifierServiceThis 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.- Specified by:
resolvein interfaceIdentifierService- 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 foundIdentifierNotResolvableException- if identifier not resolvable
-
delete
public void delete(Context context, DSpaceObject dso) throws AuthorizeException, SQLException, IdentifierException
Description copied from interface:IdentifierServiceDelete (Unbind) all identifiers registered for a specific DSpace item. Identifiers are "unbound" across all providers in no particular order.- Specified by:
deletein interfaceIdentifierService- Parameters:
context- The relevant DSpace Context.dso- DSpace object to be deleted- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
delete
public void delete(Context context, DSpaceObject dso, String identifier) throws AuthorizeException, SQLException, IdentifierException
Description copied from interface:IdentifierServiceUsed 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.- Specified by:
deletein interfaceIdentifierService- Parameters:
context- The relevant DSpace Context.dso- DSpace object to be deletedidentifier- instance of an Identifier of the required type.- Throws:
AuthorizeException- if authorization errorSQLException- if database errorIdentifierException- if identifier error
-
-