Class SearchInfo

  • All Implemented Interfaces:
    SearchConstants, XmlSerializable

    public class SearchInfo
    extends java.lang.Object
    implements SearchConstants, XmlSerializable
    SearchInfo parses the 'searchrequest' element of a SEARCH request body and performs basic validation. Both query language and the query itself can be access from the resulting object.
    NOTE: The query is expected to be represented by the text contained in the Xml element specifying the query language, thus the 'basicsearch' defined by the Webdav Search Internet Draft is not supported by this implementation.

    Example of a valid 'searchrequest' body

     <d:searchrequest xmlns:d="DAV:" dcr:="http://www.day.com/jcr/webdav/1.0" >
        <dcr:xpath>//sv:node[@sv:name='myapp:paragraph'][1]</dcr:xpath>
     </d:searchrequest>
     
    Would return the following values:
        getLanguageName() -> xpath
        getQuery()        -> //sv:node[@sv:name='myapp:paragraph'][1]
     
    • Constructor Detail

      • SearchInfo

        public SearchInfo​(java.lang.String language,
                          Namespace languageNamespace,
                          java.lang.String query,
                          java.util.Map<java.lang.String,​java.lang.String> namespaces)
        Create a new SearchInfo instance.
        Parameters:
        language -
        languageNamespace -
        query -
        namespaces - the re-mapped namespaces. Key=prefix, value=uri.
      • SearchInfo

        public SearchInfo​(java.lang.String language,
                          Namespace languageNamespace,
                          java.lang.String query)
        Create a new SearchInfo instance.
        Parameters:
        language -
        languageNamespace -
        query -
    • Method Detail

      • getLanguageName

        public java.lang.String getLanguageName()
        Returns the name of the query language to be used.
        Returns:
        name of the query language
      • getLanguageNameSpace

        public Namespace getLanguageNameSpace()
        Returns the namespace of the language specified with the search request element.
        Returns:
        namespace of the requested language.
      • getQuery

        public java.lang.String getQuery()
        Return the query string.
        Returns:
        query string
      • getNamespaces

        public java.util.Map<java.lang.String,​java.lang.String> getNamespaces()
        Returns the namespaces that have been re-mapped by the user.
        Returns:
        map of namespace to prefix mappings. Key=prefix, value=uri.
      • getNumberResults

        public long getNumberResults()
        Returns the maximal number of search results that should be returned.
        Returns:
        the maximal number of search results that should be returned.
      • setNumberResults

        public void setNumberResults​(long nresults)
        Sets the maximal number of search results that should be returned.
        Parameters:
        nresults - The maximal number of search results
      • getOffset

        public long getOffset()
        Returns the desired offset in the total result set.
        Returns:
        the desired offset in the total result set.
      • setOffset

        public void setOffset​(long offset)
        Sets the desired offset in the total result set.
        Parameters:
        offset - The desired offset in the total result set.
      • toXml

        public org.w3c.dom.Element toXml​(org.w3c.dom.Document document)
        Return the xml representation of this SearchInfo instance.
        Specified by:
        toXml in interface XmlSerializable
        Parameters:
        document -
        Returns:
        xml representation
      • createFromXml

        public static SearchInfo createFromXml​(org.w3c.dom.Element searchRequest)
                                        throws DavException
        Create a new SearchInfo from the specifying document retrieved from the request body.
        Parameters:
        searchRequest -
        Throws:
        DavException - if the root element's name is other than 'searchrequest' or if it does not contain a single child element specifying the query language to be used.