Package org.dspace.identifier
Class DOIServiceImpl
- java.lang.Object
-
- org.dspace.identifier.DOIServiceImpl
-
- All Implemented Interfaces:
DOIService
public class DOIServiceImpl extends Object implements DOIService
Service implementation for the DOI object. This class is responsible for all business logic calls for the DOI object and is autowired by spring. This class should never be accessed directly.- Author:
- kevinvandevelde at atmire.com
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedDOIServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DOIcreate(Context context)StringDOIFromExternalFormat(String identifier)StringDOIToExternalForm(String identifier)This method helps to convert a DOI into a URL.DOIfindByDoi(Context context, String doi)DOIfindDOIByDSpaceObject(Context context, DSpaceObject dso)DOIfindDOIByDSpaceObject(Context context, DSpaceObject dso, List<Integer> statusToExclude)StringformatIdentifier(String identifier)Recognize format of DOI and return it with leading doi-Scheme.List<DOI>getDOIsByStatus(Context context, List<Integer> statuses)List<DOI>getSimilarDOIsNotInState(Context context, String doiPattern, List<Integer> statuses, boolean dsoIsNotNull)Find all DOIs that are similar to the specified pattern ant not in the specified states.voidupdate(Context context, DOI doi)
-
-
-
Field Detail
-
doiDAO
@Autowired(required=true) protected DOIDAO doiDAO
-
-
Method Detail
-
update
public void update(Context context, DOI doi) throws SQLException
- Specified by:
updatein interfaceDOIService- Throws:
SQLException
-
create
public DOI create(Context context) throws SQLException
- Specified by:
createin interfaceDOIService- Throws:
SQLException
-
findByDoi
public DOI findByDoi(Context context, String doi) throws SQLException
- Specified by:
findByDoiin interfaceDOIService- Throws:
SQLException
-
findDOIByDSpaceObject
public DOI findDOIByDSpaceObject(Context context, DSpaceObject dso) throws SQLException
- Specified by:
findDOIByDSpaceObjectin interfaceDOIService- Throws:
SQLException
-
findDOIByDSpaceObject
public DOI findDOIByDSpaceObject(Context context, DSpaceObject dso, List<Integer> statusToExclude) throws SQLException
- Specified by:
findDOIByDSpaceObjectin interfaceDOIService- Throws:
SQLException
-
DOIToExternalForm
public String DOIToExternalForm(String identifier) throws IdentifierException
Description copied from interface:DOIServiceThis method helps to convert a DOI into a URL. It takes DOIs in one of the following formats and returns it as URL (f.e. http://dx.doi.org/10.123/456). Allowed formats are:- doi:10.123/456
- 10.123/456
- http://dx.doi.org/10.123/456
- Specified by:
DOIToExternalFormin interfaceDOIService- Parameters:
identifier- A DOI that should be returned in external form.- Returns:
- A String containing a URL to the official DOI resolver.
- Throws:
IdentifierException- If identifier could not be recognized as valid DOI.
-
DOIFromExternalFormat
public String DOIFromExternalFormat(String identifier) throws DOIIdentifierException
- Specified by:
DOIFromExternalFormatin interfaceDOIService- Throws:
DOIIdentifierException
-
formatIdentifier
public String formatIdentifier(String identifier) throws DOIIdentifierException
Description copied from interface:DOIServiceRecognize format of DOI and return it with leading doi-Scheme.- Specified by:
formatIdentifierin interfaceDOIService- Parameters:
identifier- Identifier to format, following format are accepted: f.e. 10.123/456, doi:10.123/456, http://dx.doi.org/10.123/456.- Returns:
- Given Identifier with DOI-Scheme, f.e. doi:10.123/456.
- Throws:
DOIIdentifierException- If DOI could not be recognized.
-
getDOIsByStatus
public List<DOI> getDOIsByStatus(Context context, List<Integer> statuses) throws SQLException
- Specified by:
getDOIsByStatusin interfaceDOIService- Throws:
SQLException
-
getSimilarDOIsNotInState
public List<DOI> getSimilarDOIsNotInState(Context context, String doiPattern, List<Integer> statuses, boolean dsoIsNotNull) throws SQLException
Description copied from interface:DOIServiceFind all DOIs that are similar to the specified pattern ant not in the specified states.- Specified by:
getSimilarDOIsNotInStatein interfaceDOIService- Parameters:
context- DSpace contextdoiPattern- The pattern, e.g. "10.5072/123.%"statuses- The statuses the DOI should not be in, @{link DOIIdentifierProvider.DELETED}.dsoIsNotNull- Boolean whether all DOIs should be excluded where the DSpaceObject is NULL.- Returns:
- null or a list of DOIs
- Throws:
SQLException- if database error
-
-