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 Detail

      • 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.
      • 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.