Interface OpenSearchService

  • All Known Implementing Classes:
    OpenSearchServiceImpl

    public interface OpenSearchService
    Utility Class with static methods for producing OpenSearch-compliant search results, and the OpenSearch description document.

    OpenSearch is a specification for describing and advertising search-engines and their result formats. Commonly, RSS and Atom formats are used, which the current implementation supports, as is HTML (used directly in browsers). NB: this is baseline OpenSearch, no extensions currently supported.

    The value of the "scope" parameter should either be absent (which means no scope restriction), or the handle of a community or collection.

    Author:
    Richard Rodgers
    • Method Detail

      • getFormats

        List<String> getFormats()
        Returns list of supported formats
        Returns:
        list of format names - 'rss', 'atom' or 'html'
      • isEnabled

        boolean isEnabled()
        Determine if the module is active
        Returns:
        boolean indicator if the OpenSearch module is enabled or not
      • getContentType

        String getContentType​(String format)
        Returns a mime-type associated with passed format
        Parameters:
        format - the results document format (rss, atom, html)
        Returns:
        content-type mime-type
      • getDescriptionDoc

        Document getDescriptionDoc​(String scope)
                            throws IOException
        Returns the OpenSearch service document appropriate for given scope
        Parameters:
        scope - - null for entire repository, or handle or community or collection
        Returns:
        document the service document
        Throws:
        IOException - if IO error
      • getDescription

        String getDescription​(String scope)
        Returns OpenSearch Servic Document as a string
        Parameters:
        scope - - null for entire repository, or handle or community or collection
        Returns:
        service document as a string
      • getResultsString

        String getResultsString​(Context context,
                                String format,
                                String query,
                                int totalResults,
                                int start,
                                int pageSize,
                                IndexableObject scope,
                                List<IndexableObject> results,
                                Map<String,​String> labels)
                         throws IOException
        Returns a formatted set of search results as a string
        Parameters:
        context - DSpace Context
        format - results format - html, rss or atom
        query - - the search query
        totalResults - - the hit count
        start - - start result index
        pageSize - - page size
        scope - - search scope, null or the community/collection
        results - the retreived DSpace objects satisfying search
        labels - labels to apply - format specific
        Returns:
        formatted search results
        Throws:
        IOException - if IO error
      • getResultsDoc

        Document getResultsDoc​(Context context,
                               String format,
                               String query,
                               int totalResults,
                               int start,
                               int pageSize,
                               IndexableObject scope,
                               List<IndexableObject> results,
                               Map<String,​String> labels)
                        throws IOException
        Returns a formatted set of search results as a document
        Parameters:
        context - DSpace Context
        format - results format - html, rss or atom
        query - - the search query
        totalResults - - the hit count
        start - - start result index
        pageSize - - page size
        scope - - search scope, null or the community/collection
        results - the retreived DSpace objects satisfying search
        labels - labels to apply - format specific
        Returns:
        formatted search results
        Throws:
        IOException - if IO error