Class DocumentNavigator

  • All Implemented Interfaces:
    java.io.Serializable, org.jaxen.NamedAccessNavigator, org.jaxen.Navigator

    public class DocumentNavigator
    extends org.jaxen.DefaultNavigator
    implements org.jaxen.NamedAccessNavigator
    An implementation of the Jaxen xpath against the node service API This means any node service can do xpath style navigation. Given any context node we can navigate between nodes using xpath. This allows simple path navigation and much more.
    Author:
    Andy Hind
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      DocumentNavigator​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService, org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.search.SearchService searchService, org.alfresco.service.namespace.NamespacePrefixResolver nspr, boolean followAllParentLinks)  
      DocumentNavigator​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService, org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.search.SearchService searchService, org.alfresco.service.namespace.NamespacePrefixResolver nspr, boolean followAllParentLinks, boolean useJCRRootNode)
      Deprecated.
      useJCRRootNode parameter is now obsolete.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Boolean contains​(org.alfresco.service.cmr.repository.NodeRef childRef, org.alfresco.service.namespace.QName qname, java.lang.String sqlLikePattern, org.alfresco.service.cmr.search.SearchParameters.Operator defaultOperator)  
      java.util.Iterator getAttributeAxisIterator​(java.lang.Object o)  
      java.util.Iterator getAttributeAxisIterator​(java.lang.Object contextNode, java.lang.String localName, java.lang.String namespacePrefix, java.lang.String namespaceURI)  
      java.lang.String getAttributeName​(java.lang.Object o)  
      java.lang.String getAttributeNamespaceUri​(java.lang.Object o)  
      java.lang.String getAttributeQName​(java.lang.Object o)  
      java.lang.String getAttributeStringValue​(java.lang.Object o)  
      java.util.Iterator getChildAxisIterator​(java.lang.Object o)  
      java.util.Iterator getChildAxisIterator​(java.lang.Object contextNode, java.lang.String localName, java.lang.String namespacePrefix, java.lang.String namespaceURI)  
      java.lang.String getCommentStringValue​(java.lang.Object o)  
      java.lang.Object getDocumentNode​(java.lang.Object o)  
      java.lang.String getElementName​(java.lang.Object o)  
      java.lang.String getElementNamespaceUri​(java.lang.Object o)  
      java.lang.String getElementQName​(java.lang.Object o)  
      java.lang.String getElementStringValue​(java.lang.Object o)  
      java.util.Iterator getFollowingAxisIterator​(java.lang.Object arg0)  
      java.util.Iterator getFollowingSiblingAxisIterator​(java.lang.Object arg0)  
      java.util.Iterator getNamespaceAxisIterator​(java.lang.Object o)  
      java.lang.String getNamespacePrefix​(java.lang.Object o)  
      org.alfresco.service.namespace.NamespacePrefixResolver getNamespacePrefixResolver()  
      java.lang.String getNamespaceStringValue​(java.lang.Object o)  
      java.lang.Object getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef> getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QNamePattern qNamePattern)  
      java.util.Iterator getParentAxisIterator​(java.lang.Object o)  
      java.util.Iterator getPrecedingAxisIterator​(java.lang.Object arg0)  
      java.util.Iterator getPrecedingSiblingAxisIterator​(java.lang.Object arg0)  
      java.lang.String getTextStringValue​(java.lang.Object o)  
      java.lang.Boolean hasAspect​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName)  
      boolean isAttribute​(java.lang.Object o)  
      boolean isComment​(java.lang.Object o)  
      boolean isDocument​(java.lang.Object o)  
      boolean isElement​(java.lang.Object o)  
      boolean isNamespace​(java.lang.Object o)  
      boolean isProcessingInstruction​(java.lang.Object o)  
      java.lang.Boolean isSubtypeOf​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName typeQName)  
      boolean isText​(java.lang.Object o)  
      java.lang.Boolean like​(org.alfresco.service.cmr.repository.NodeRef childRef, org.alfresco.service.namespace.QName qname, java.lang.String sqlLikePattern, boolean includeFTS)  
      org.jaxen.XPath parseXPath​(java.lang.String o)  
      void setFollowAllParentLinks​(boolean followAllParentLinks)
      Allow this to be set as it commonly changes from one search to the next
      • Methods inherited from class org.jaxen.DefaultNavigator

        getAncestorAxisIterator, getAncestorOrSelfAxisIterator, getDescendantAxisIterator, getDescendantOrSelfAxisIterator, getDocument, getElementById, getNodeType, getParentNode, getProcessingInstructionData, getProcessingInstructionTarget, getSelfAxisIterator, translateNamespacePrefixToUri
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.jaxen.Navigator

        getAncestorAxisIterator, getAncestorOrSelfAxisIterator, getDescendantAxisIterator, getDescendantOrSelfAxisIterator, getDocument, getElementById, getNodeType, getParentNode, getProcessingInstructionData, getProcessingInstructionTarget, getSelfAxisIterator, translateNamespacePrefixToUri
    • Constructor Detail

      • DocumentNavigator

        public DocumentNavigator​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService,
                                 org.alfresco.service.cmr.repository.NodeService nodeService,
                                 org.alfresco.service.cmr.search.SearchService searchService,
                                 org.alfresco.service.namespace.NamespacePrefixResolver nspr,
                                 boolean followAllParentLinks,
                                 boolean useJCRRootNode)
        Deprecated.
        useJCRRootNode parameter is now obsolete.
      • DocumentNavigator

        public DocumentNavigator​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService,
                                 org.alfresco.service.cmr.repository.NodeService nodeService,
                                 org.alfresco.service.cmr.search.SearchService searchService,
                                 org.alfresco.service.namespace.NamespacePrefixResolver nspr,
                                 boolean followAllParentLinks)
        Parameters:
        dictionaryService - used to resolve the subtypeOf function and other type-related functions
        nodeService - the NodeService against which to execute
        searchService - the service that helps resolve functions such as like and contains
        nspr - resolves namespaces in the xpath
        followAllParentLinks - true if the XPath should traverse all parent associations when going up the hierarchy; false if the only the primary parent-child association should be traversed
    • Method Detail

      • getNamespacePrefixResolver

        public org.alfresco.service.namespace.NamespacePrefixResolver getNamespacePrefixResolver()
      • setFollowAllParentLinks

        public void setFollowAllParentLinks​(boolean followAllParentLinks)
        Allow this to be set as it commonly changes from one search to the next
        Parameters:
        followAllParentLinks - true
      • getAttributeName

        public java.lang.String getAttributeName​(java.lang.Object o)
        Specified by:
        getAttributeName in interface org.jaxen.Navigator
      • getAttributeNamespaceUri

        public java.lang.String getAttributeNamespaceUri​(java.lang.Object o)
        Specified by:
        getAttributeNamespaceUri in interface org.jaxen.Navigator
      • getAttributeQName

        public java.lang.String getAttributeQName​(java.lang.Object o)
        Specified by:
        getAttributeQName in interface org.jaxen.Navigator
      • getAttributeStringValue

        public java.lang.String getAttributeStringValue​(java.lang.Object o)
        Specified by:
        getAttributeStringValue in interface org.jaxen.Navigator
      • getCommentStringValue

        public java.lang.String getCommentStringValue​(java.lang.Object o)
        Specified by:
        getCommentStringValue in interface org.jaxen.Navigator
      • getElementName

        public java.lang.String getElementName​(java.lang.Object o)
        Specified by:
        getElementName in interface org.jaxen.Navigator
      • getElementNamespaceUri

        public java.lang.String getElementNamespaceUri​(java.lang.Object o)
        Specified by:
        getElementNamespaceUri in interface org.jaxen.Navigator
      • getElementQName

        public java.lang.String getElementQName​(java.lang.Object o)
        Specified by:
        getElementQName in interface org.jaxen.Navigator
      • getElementStringValue

        public java.lang.String getElementStringValue​(java.lang.Object o)
        Specified by:
        getElementStringValue in interface org.jaxen.Navigator
      • getNamespacePrefix

        public java.lang.String getNamespacePrefix​(java.lang.Object o)
        Specified by:
        getNamespacePrefix in interface org.jaxen.Navigator
      • getNamespaceStringValue

        public java.lang.String getNamespaceStringValue​(java.lang.Object o)
        Specified by:
        getNamespaceStringValue in interface org.jaxen.Navigator
      • getTextStringValue

        public java.lang.String getTextStringValue​(java.lang.Object o)
        Specified by:
        getTextStringValue in interface org.jaxen.Navigator
      • isAttribute

        public boolean isAttribute​(java.lang.Object o)
        Specified by:
        isAttribute in interface org.jaxen.Navigator
      • isComment

        public boolean isComment​(java.lang.Object o)
        Specified by:
        isComment in interface org.jaxen.Navigator
      • isDocument

        public boolean isDocument​(java.lang.Object o)
        Specified by:
        isDocument in interface org.jaxen.Navigator
      • isElement

        public boolean isElement​(java.lang.Object o)
        Specified by:
        isElement in interface org.jaxen.Navigator
      • isNamespace

        public boolean isNamespace​(java.lang.Object o)
        Specified by:
        isNamespace in interface org.jaxen.Navigator
      • isProcessingInstruction

        public boolean isProcessingInstruction​(java.lang.Object o)
        Specified by:
        isProcessingInstruction in interface org.jaxen.Navigator
      • isText

        public boolean isText​(java.lang.Object o)
        Specified by:
        isText in interface org.jaxen.Navigator
      • parseXPath

        public org.jaxen.XPath parseXPath​(java.lang.String o)
                                   throws org.jaxen.JaxenException
        Specified by:
        parseXPath in interface org.jaxen.Navigator
        Throws:
        org.jaxen.JaxenException
      • getAttributeAxisIterator

        public java.util.Iterator getAttributeAxisIterator​(java.lang.Object contextNode,
                                                           java.lang.String localName,
                                                           java.lang.String namespacePrefix,
                                                           java.lang.String namespaceURI)
                                                    throws org.jaxen.UnsupportedAxisException
        Specified by:
        getAttributeAxisIterator in interface org.jaxen.NamedAccessNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getAttributeAxisIterator

        public java.util.Iterator getAttributeAxisIterator​(java.lang.Object o)
                                                    throws org.jaxen.UnsupportedAxisException
        Specified by:
        getAttributeAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getAttributeAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getChildAxisIterator

        public java.util.Iterator getChildAxisIterator​(java.lang.Object contextNode,
                                                       java.lang.String localName,
                                                       java.lang.String namespacePrefix,
                                                       java.lang.String namespaceURI)
                                                throws org.jaxen.UnsupportedAxisException
        Specified by:
        getChildAxisIterator in interface org.jaxen.NamedAccessNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getChildAxisIterator

        public java.util.Iterator getChildAxisIterator​(java.lang.Object o)
                                                throws org.jaxen.UnsupportedAxisException
        Specified by:
        getChildAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getChildAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getFollowingSiblingAxisIterator

        public java.util.Iterator getFollowingSiblingAxisIterator​(java.lang.Object arg0)
                                                           throws org.jaxen.UnsupportedAxisException
        Specified by:
        getFollowingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getFollowingSiblingAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
        See Also:
        always thrown
      • getFollowingAxisIterator

        public java.util.Iterator getFollowingAxisIterator​(java.lang.Object arg0)
                                                    throws org.jaxen.UnsupportedAxisException
        Specified by:
        getFollowingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getFollowingAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
        See Also:
        always thrown
      • getPrecedingAxisIterator

        public java.util.Iterator getPrecedingAxisIterator​(java.lang.Object arg0)
                                                    throws org.jaxen.UnsupportedAxisException
        Specified by:
        getPrecedingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getPrecedingAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
        See Also:
        always thrown
      • getPrecedingSiblingAxisIterator

        public java.util.Iterator getPrecedingSiblingAxisIterator​(java.lang.Object arg0)
                                                           throws org.jaxen.UnsupportedAxisException
        Specified by:
        getPrecedingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getPrecedingSiblingAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
        See Also:
        always thrown
      • getNamespaceAxisIterator

        public java.util.Iterator getNamespaceAxisIterator​(java.lang.Object o)
                                                    throws org.jaxen.UnsupportedAxisException
        Specified by:
        getNamespaceAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getNamespaceAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getParentAxisIterator

        public java.util.Iterator getParentAxisIterator​(java.lang.Object o)
                                                 throws org.jaxen.UnsupportedAxisException
        Specified by:
        getParentAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getParentAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getDocumentNode

        public java.lang.Object getDocumentNode​(java.lang.Object o)
        Specified by:
        getDocumentNode in interface org.jaxen.Navigator
        Overrides:
        getDocumentNode in class org.jaxen.DefaultNavigator
      • getNode

        public java.lang.Object getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      • getNode

        public java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef> getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                                               org.alfresco.service.namespace.QNamePattern qNamePattern)
      • like

        public java.lang.Boolean like​(org.alfresco.service.cmr.repository.NodeRef childRef,
                                      org.alfresco.service.namespace.QName qname,
                                      java.lang.String sqlLikePattern,
                                      boolean includeFTS)
      • contains

        public java.lang.Boolean contains​(org.alfresco.service.cmr.repository.NodeRef childRef,
                                          org.alfresco.service.namespace.QName qname,
                                          java.lang.String sqlLikePattern,
                                          org.alfresco.service.cmr.search.SearchParameters.Operator defaultOperator)
      • isSubtypeOf

        public java.lang.Boolean isSubtypeOf​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                             org.alfresco.service.namespace.QName typeQName)
      • hasAspect

        public java.lang.Boolean hasAspect​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                           org.alfresco.service.namespace.QName typeQName)