org.alfresco.repo.search
Class DocumentNavigator

java.lang.Object
  extended by org.jaxen.DefaultNavigator
      extended by org.alfresco.repo.search.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.

See Also:
Serialized Form

Nested Class Summary
 class DocumentNavigator.JCRRootNodeChildAssociationRef
           
 class DocumentNavigator.Namespace
           
 class DocumentNavigator.Property
           
 
Constructor Summary
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)
           
 
Method Summary
 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 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)
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 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)


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.