Jiffie: Java InterFace For Internet Explorer

net.sf.jiffie.xpath
Class DocumentNavigator

Package class diagram package DocumentNavigator
java.lang.Object
  extended by DefaultNavigator
      extended by net.sf.jiffie.xpath.DocumentNavigator

public class DocumentNavigator
extends DefaultNavigator

Interface for navigating around the Jiffie/Internet Explorer object model.

This class is not intended for direct usage, but is used by the Jaxen engine during evaluation. Please see JiffieXPath.

This class implements the org.jaxen.DefaultNavigatorinterface for the Jaxen XPath library, version 1.0-FCS (it is not guaranteed to work with subsequent releases). This adapter allows the Jaxen library to be used to execute XPath queries against any object tree from Internet Explorer, accessed by the Jiffie library.

This implementation is based in part on the DOM2 DocumentNavigator, which is part of Jaxen.

See Also:
XPath

Nested Class Summary
(package private)  class DocumentNavigator.AttributeIterator
          An iterator over an attribute list.
(package private)  class DocumentNavigator.NodeIterator
          A generic iterator over DOM nodes.
 
Constructor Summary
DocumentNavigator()
           
 
Method Summary
 java.util.Iterator<IHTMLDOMNode> getAttributeAxisIterator(java.lang.Object contextNode)
          
 java.lang.String getAttributeName(java.lang.Object object)
          
 java.lang.String getAttributeNamespaceUri(java.lang.Object object)
          
 java.lang.String getAttributeQName(java.lang.Object object)
          
 java.lang.String getAttributeStringValue(java.lang.Object object)
          
 java.util.Iterator<IHTMLDOMNode> getChildAxisIterator(java.lang.Object contextNode)
          
 java.lang.String getCommentStringValue(java.lang.Object object)
          
 java.lang.Object getDocument(java.lang.String uri)
          
 java.lang.Object getDocumentNode(java.lang.Object contextNode)
          
 java.lang.Object getElementById(java.lang.Object object, java.lang.String elementId)
          Returns the element whose ID is given by elementId.
 java.lang.String getElementName(java.lang.Object object)
          
 java.lang.String getElementNamespaceUri(java.lang.Object object)
          
 java.lang.String getElementQName(java.lang.Object object)
          
 java.lang.String getElementStringValue(java.lang.Object object)
          
 java.util.Iterator<IHTMLDOMNode> getFollowingAxisIterator(java.lang.Object contextNode)
          
 java.util.Iterator<IHTMLDOMNode> getFollowingSiblingAxisIterator(java.lang.Object contextNode)
          
static DocumentNavigator getInstance()
          Get a singleton DocumentNavigator for efficiency.
 java.util.Iterator<IHTMLDOMNode> getNamespaceAxisIterator(java.lang.Object contextNode)
          
 java.lang.String getNamespacePrefix(java.lang.Object object)
          
 java.lang.String getNamespaceStringValue(java.lang.Object object)
          Get the string value of a Namespace node.
 java.util.Iterator<IHTMLDOMNode> getParentAxisIterator(java.lang.Object contextNode)
          
 java.util.Iterator<IHTMLDOMNode> getPrecedingAxisIterator(java.lang.Object contextNode)
          
 java.util.Iterator<IHTMLDOMNode> getPrecedingSiblingAxisIterator(java.lang.Object contextNode)
          
 java.lang.String getProcessingInstructionData(java.lang.Object obj)
          
 java.lang.String getProcessingInstructionTarget(java.lang.Object obj)
          
 java.lang.String getTextStringValue(java.lang.Object object)
          
protected  java.lang.UnsupportedOperationException handleJiffieException(JiffieException je)
          Handle a Jiffie Exception, wrapping in an runtime exception so as not to change the interface.
 boolean isAttribute(java.lang.Object object)
          
 boolean isComment(java.lang.Object object)
          
 boolean isDocument(java.lang.Object object)
          
 boolean isElement(java.lang.Object object)
          
 boolean isNamespace(java.lang.Object object)
          
 boolean isProcessingInstruction(java.lang.Object object)
          
 boolean isText(java.lang.Object object)
          
 XPath parseXPath(java.lang.String xpath)
          
 java.lang.String translateNamespacePrefixToUri(java.lang.String prefix, java.lang.Object element)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DocumentNavigator

public DocumentNavigator()
Method Detail

getInstance

public static DocumentNavigator getInstance()
Get a singleton DocumentNavigator for efficiency.

Returns:
A singleton instance of a DocumentNavigator.

getChildAxisIterator

public java.util.Iterator<IHTMLDOMNode> getChildAxisIterator(java.lang.Object contextNode)


getParentAxisIterator

public java.util.Iterator<IHTMLDOMNode> getParentAxisIterator(java.lang.Object contextNode)


getFollowingSiblingAxisIterator

public java.util.Iterator<IHTMLDOMNode> getFollowingSiblingAxisIterator(java.lang.Object contextNode)


getPrecedingSiblingAxisIterator

public java.util.Iterator<IHTMLDOMNode> getPrecedingSiblingAxisIterator(java.lang.Object contextNode)


getFollowingAxisIterator

public java.util.Iterator<IHTMLDOMNode> getFollowingAxisIterator(java.lang.Object contextNode)


getPrecedingAxisIterator

public java.util.Iterator<IHTMLDOMNode> getPrecedingAxisIterator(java.lang.Object contextNode)


getAttributeAxisIterator

public java.util.Iterator<IHTMLDOMNode> getAttributeAxisIterator(java.lang.Object contextNode)


getNamespaceAxisIterator

public java.util.Iterator<IHTMLDOMNode> getNamespaceAxisIterator(java.lang.Object contextNode)

Note: this iterator is not live: it takes a snapshot and that snapshot remains static during the life of the iterator (i.e. it won't reflect subsequent changes to the DOM).


parseXPath

public XPath parseXPath(java.lang.String xpath)
                 throws JaxenException

Throws:
JaxenException

getDocumentNode

public java.lang.Object getDocumentNode(java.lang.Object contextNode)


getElementNamespaceUri

public java.lang.String getElementNamespaceUri(java.lang.Object object)


getElementName

public java.lang.String getElementName(java.lang.Object object)


getElementQName

public java.lang.String getElementQName(java.lang.Object object)


getAttributeNamespaceUri

public java.lang.String getAttributeNamespaceUri(java.lang.Object object)


getAttributeName

public java.lang.String getAttributeName(java.lang.Object object)


getAttributeQName

public java.lang.String getAttributeQName(java.lang.Object object)


isDocument

public boolean isDocument(java.lang.Object object)


isNamespace

public boolean isNamespace(java.lang.Object object)


isElement

public boolean isElement(java.lang.Object object)


isAttribute

public boolean isAttribute(java.lang.Object object)


isComment

public boolean isComment(java.lang.Object object)


isText

public boolean isText(java.lang.Object object)


isProcessingInstruction

public boolean isProcessingInstruction(java.lang.Object object)


getElementStringValue

public java.lang.String getElementStringValue(java.lang.Object object)


getAttributeStringValue

public java.lang.String getAttributeStringValue(java.lang.Object object)


getTextStringValue

public java.lang.String getTextStringValue(java.lang.Object object)


getCommentStringValue

public java.lang.String getCommentStringValue(java.lang.Object object)


getNamespaceStringValue

public java.lang.String getNamespaceStringValue(java.lang.Object object)
Get the string value of a Namespace node.

Parameters:
object - The target node.
Returns:
The Namespace URI as a (possibly empty) string if the node is a namespace node, null otherwise.

getNamespacePrefix

public java.lang.String getNamespacePrefix(java.lang.Object object)


translateNamespacePrefixToUri

public java.lang.String translateNamespacePrefixToUri(java.lang.String prefix,
                                                      java.lang.Object element)


getDocument

public java.lang.Object getDocument(java.lang.String uri)
                             throws FunctionCallException

Throws:
FunctionCallException

getProcessingInstructionTarget

public java.lang.String getProcessingInstructionTarget(java.lang.Object obj)


getProcessingInstructionData

public java.lang.String getProcessingInstructionData(java.lang.Object obj)


getElementById

public java.lang.Object getElementById(java.lang.Object object,
                                       java.lang.String elementId)
Returns the element whose ID is given by elementId. If no such element exists, returns null. Attributes with the name "ID" are not of type ID unless so defined. Atribute types are only known if when the parser understands DTD's or schemas that declare attributes of type ID. When JAXP is used, you must call setValidating(true) on the DocumentBuilderFactory.

Parameters:
object - a node from the document in which to look for the id
elementId - id to look for
Returns:
element whose ID is given by elementId, or null if no such element exists in the document or if the implementation does not know about attribute types
See Also:
javax.xml.parsers.DocumentBuilderFactory

handleJiffieException

protected java.lang.UnsupportedOperationException handleJiffieException(JiffieException je)
Handle a Jiffie Exception, wrapping in an runtime exception so as not to change the interface.

Parameters:
je - The JiffieExcetpion
Returns:
a runtime exception


Copyright © 2004-2009 Packwood Software. All Rights Reserved.