Class SHERPAv2PublisherDataProvider

  • All Implemented Interfaces:
    ExternalDataProvider

    public class SHERPAv2PublisherDataProvider
    extends AbstractExternalDataProvider
    This class is the implementation of the ExternalDataProvider interface that will deal with SHERPAPublisher External data lookups. This provider is a refactored version of SherpaPublisherDataPublisher, rewritten to work with SHERPA v2 API It uses a more simple response object than the normal publication / policy search
    Author:
    Kim Shepherd
    • Constructor Detail

      • SHERPAv2PublisherDataProvider

        public SHERPAv2PublisherDataProvider()
    • Method Detail

      • getSourceIdentifier

        public String getSourceIdentifier()
        Description copied from interface: ExternalDataProvider
        This method will return the SourceIdentifier for the ExternalDataProvider that implements the interface
        Returns:
        The source identifier as a String
      • init

        public void init()
                  throws IOException
        Initialise the client that we need to call the endpoint
        Throws:
        IOException - If something goes wrong
      • getExternalDataObject

        public Optional<ExternalDataObject> getExternalDataObject​(String id)
        Get a single publisher based on a "id equals string" query
        Parameters:
        id - The publisher ID which will be used as query string
        Returns:
        external data object representing publisher
      • searchExternalDataObjects

        public List<ExternalDataObject> searchExternalDataObjects​(String query,
                                                                  int start,
                                                                  int limit)
        Search SHERPA v2 API for publisher results based on a 'contains word' query for publisher name
        Parameters:
        query - The query for the search
        start - The start of the search
        limit - The max amount of records to be returned by the search
        Returns:
        a list of external data objects
      • supports

        public boolean supports​(String source)
        Description copied from interface: ExternalDataProvider
        This method will return a boolean indicating whether this ExternalDataProvider can deal with the given source or not
        Parameters:
        source - The source on which the check needs to be done
        Returns:
        A boolean indicating whether this ExternalDataProvider can deal with this source or not
      • getNumberOfResults

        public int getNumberOfResults​(String query)
        Get number of results returned from a SHERPA v2 publication search
        Parameters:
        query - The query to be search on and give the total amount of results
        Returns:
        int representing number of publisher results
      • setSourceIdentifier

        public void setSourceIdentifier​(String sourceIdentifier)
        Generic setter for the sourceIdentifier
        Parameters:
        sourceIdentifier - The sourceIdentifier to be set on this SHERPAv2PublisherDataProvider
      • setSherpaService

        public void setSherpaService​(SHERPAService sherpaService)
        Generic setter for the SHERPA Service
        Parameters:
        sherpaService - THe SHERPA service to be set on this SHERPAv2PublisherDataProvider