Interface DOIService

All Known Implementing Classes:
DOIServiceImpl

public interface DOIService
Service interface class for the DOI object. The implementation of this class is responsible for all business logic calls for the DOI object and is autowired by Spring.
Author:
kevinvandevelde at atmire.com
  • Method Details

    • update

      void update(Context context, DOI doi) throws SQLException
      Update a DOI in storage.
      Parameters:
      context - current DSpace session.
      doi - the DOI to persist.
      Throws:
      SQLException - passed through.
    • create

      DOI create(Context context) throws SQLException
      Create a new DOI in storage.
      Parameters:
      context - current DSpace session.
      Returns:
      the new DOI.
      Throws:
      SQLException - passed through.
    • delete

      void delete(Context context, DOI doi) throws SQLException
      Deletes the given DOI.
      Parameters:
      context - current DSpace session.
      Throws:
      SQLException - passed through.
    • findAll

      List<DOI> findAll(Context context) throws SQLException
      Retrieves the full list of DOIs currently in storage.
      Parameters:
      context - current DSpace session.
      Returns:
      The list of all DOIs currently in storage.
      Throws:
      SQLException - passed through.
    • findByDoi

      DOI findByDoi(Context context, String doi) throws SQLException
      Find a specific DOI in storage.
      Parameters:
      context - current DSpace session.
      doi - string representation of the DOI.
      Returns:
      the DOI object found.
      Throws:
      SQLException - passed through, can mean none found.
    • findDOIByDSpaceObject

      DOI findDOIByDSpaceObject(Context context, DSpaceObject dso) throws SQLException
      Find the DOI assigned to a given DSpace Object.
      Parameters:
      context - current DSpace session.
      dso - The DSpace Object.
      Returns:
      the DSO's DOI.
      Throws:
      SQLException - passed through.
    • findDOIByDSpaceObject

      DOI findDOIByDSpaceObject(Context context, DSpaceObject dso, List<Integer> statusToExclude) throws SQLException
      Find the DOI assigned to a given DSpace Object, unless it has one of a given set of statuses.
      Parameters:
      context - current DSpace context.
      dso - the DSpace Object.
      statusToExclude - uninteresting statuses.
      Returns:
      the DSO's DOI.
      Throws:
      SQLException - passed through.
    • DOIToExternalForm

      String DOIToExternalForm(String identifier) throws IdentifierException
      This 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
      Parameters:
      identifier - A DOI that should be returned in external form.
      Returns:
      A String containing a URL to the official DOI resolver.
      Throws:
      IllegalArgumentException - If identifier is null or an empty String.
      IdentifierException - If identifier could not be recognized as valid DOI.
    • DOIFromExternalFormat

      String DOIFromExternalFormat(String identifier) throws DOIIdentifierException
      Convert an HTTP DOI URL (https://doi.org/10.something) to a "doi:" URI.
      Parameters:
      identifier - HTTP URL
      Returns:
      DOI URI
      Throws:
      DOIIdentifierException - if identifier is not recognizable.
    • formatIdentifier

      String formatIdentifier(String identifier) throws DOIIdentifierException
      Recognize format of DOI and return it with leading doi-Scheme.
      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:
      IllegalArgumentException - If identifier is empty or null.
      DOIIdentifierException - If DOI could not be recognized.
    • getDOIsByStatus

      List<DOI> getDOIsByStatus(Context context, List<Integer> statuses) throws SQLException
      Find all DOIs that have one of a given set of statuses.
      Parameters:
      context - current DSpace session.
      statuses - desired statuses.
      Returns:
      all DOIs having any of the given statuses.
      Throws:
      SQLException - passed through.
    • getSimilarDOIsNotInState

      List<DOI> getSimilarDOIsNotInState(Context context, String doiPattern, List<Integer> statuses, boolean dsoIsNotNull) throws SQLException
      Find all DOIs that are similar to the specified pattern and not in the specified states.
      Parameters:
      context - DSpace context
      doiPattern - 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
    • getResolver

      String getResolver()
      Get the URL stem of the DOI resolver, e.g. "https://doi.org/".
      Returns:
      URL to the DOI resolver.