Package org.apache.commons.jxpath.ri.model.jdom

# Class JDOMNodePointer

java.lang.Object
org.apache.commons.jxpath.ri.model.NodePointer
org.apache.commons.jxpath.ri.model.jdom.JDOMNodePointer

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Comparable`, `Pointer`

public class JDOMNodePointer extends NodePointer
A Pointer that points to a DOM node.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `XML_NAMESPACE_URI`
  XML ns uri
  `static final String`
  `XMLNS_NAMESPACE_URI`
  XMLNS ns uri

  ### Fields inherited from class org.apache.commons.jxpath.ri.model.NodePointer

  `index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JDOMNodePointer(Object node, Locale locale)`
  Constructs a new JDOMNodePointer.
  `JDOMNodePointer(Object node, Locale locale, String id)`
  Constructs a new JDOMNodePointer.
  `JDOMNodePointer(NodePointer parent, Object node)`
  Constructs a new JDOMNodePointer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `asPath()`
  Returns an XPath that maps to this Pointer.
  `NodeIterator`
  `attributeIterator(QName qName)`
  Returns a NodeIterator that iterates over all attributes of the current node matching the supplied node name (could have a wildcard).
  `NodeIterator`
  `childIterator(NodeTest test, boolean reverse, NodePointer startWith)`
  Returns a NodeIterator that iterates over all children or all children that match the given NodeTest, starting with the specified one.
  `int`
  `compareChildNodePointers(NodePointer pointer1, NodePointer pointer2)`
  Compares two child NodePointers and returns a positive number, zero or a positive number according to the order of the pointers.
  `NodePointer`
  `createAttribute(JXPathContext context, QName qName)`
  Called to create a non-existing attribute
  `NodePointer`
  `createChild(JXPathContext context, QName qName, int index)`
  Called by a child pointer when it needs to create a parent object for a non-existent collection element.
  `NodePointer`
  `createChild(JXPathContext context, QName qName, int index, Object value)`
  Called by a child pointer if that child needs to assign the value supplied in the createPath(context, value) call to a non-existent node.
  `boolean`
  `equals(Object object)`
  `protected static String`
  `findEnclosingAttribute(Object n, String attrName, Namespace ns)`
  Find the nearest occurrence of the specified attribute on the specified and enclosing elements.
  `Object`
  `getBaseValue()`
  Gets the value represented by the pointer before indexing.
  `Object`
  `getImmediateNode()`
  Returns the object the pointer points to; does not convert it to a "canonical" type.
  `protected String`
  `getLanguage()`
  Gets the language of this element.
  `int`
  `getLength()`
  If the pointer represents a collection (or collection element), returns the length of the collection.
  `static String`
  `getLocalName(Object node)`
  Gets the local name of the specified node.
  `QName`
  `getName()`
  Gets the name of this node.
  `NamespaceResolver`
  `getNamespaceResolver()`
  Gets the NamespaceResolver associated with this NodePointer.
  `String`
  `getNamespaceURI()`
  Returns the namespace URI associated with this Pointer.
  `String`
  `getNamespaceURI(String prefix)`
  Decodes a namespace prefix to the corresponding URI.
  `static String`
  `getPrefix(Object node)`
  Gets the prefix from a given node.
  `Object`
  `getValue()`
  By default, returns `getNode()`, can be overridden to return a "canonical" value, like for instance a DOM element should return its string value.
  `int`
  `hashCode()`
  `boolean`
  `isCollection()`
  Returns `true` if the value of the pointer is an array or a Collection.
  `boolean`
  `isLanguage(String lang)`
  Returns true if the xml:lang attribute for the current node or its parent has the specified prefix lang.
  `boolean`
  `isLeaf()`
  If true, this node does not have children
  `NodeIterator`
  `namespaceIterator()`
  Returns a NodeIterator that iterates over all namespaces of the value currently pointed at.
  `NodePointer`
  `namespacePointer(String prefix)`
  Returns a NodePointer for the specified namespace.
  `void`
  `remove()`
  Remove the node of the object graph this pointer points to.
  `void`
  `setValue(Object value)`
  Converts the value to the required type and changes the corresponding object to that value.
  `boolean`
  `testNode(NodeTest test)`
  Checks if this Pointer matches the supplied NodeTest.
  `static boolean`
  `testNode(NodePointer pointer, Object node, NodeTest test)`
  Execute test against node on behalf of pointer.

  ### Methods inherited from class org.apache.commons.jxpath.ri.model.NodePointer

  `clone, compareTo, createPath, createPath, escape, getAbstractFactory, getDefaultNamespaceURI, getImmediateParentPointer, getImmediateValuePointer, getIndex, getLocale, getNode, getNodeSetByKey, getNodeValue, getParent, getPointerByID, getPointerByKey, getRootNode, getValuePointer, handle, handle, isActual, isAttribute, isContainer, isDefaultNamespace, isNode, isRoot, newChildNodePointer, newNodePointer, printPointerChain, setAttribute, setExceptionHandler, setIndex, setNamespaceResolver, toString, verify`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### XML_NAMESPACE_URI

    public static final String XML_NAMESPACE_URI
    XML ns uri
    See Also:
      - Constant Field Values

  - ### XMLNS_NAMESPACE_URI

    public static final String XMLNS_NAMESPACE_URI
    XMLNS ns uri
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### JDOMNodePointer

    public JDOMNodePointer(NodePointer parent, Object node)
    Constructs a new JDOMNodePointer.
    Parameters:
      `parent` - NodePointer
      `node` - pointed

  - ### JDOMNodePointer

    public JDOMNodePointer(Object node, Locale locale)
    Constructs a new JDOMNodePointer.
    Parameters:
      `node` - node, like a bean.
      `locale` - Locale

  - ### JDOMNodePointer

    public JDOMNodePointer(Object node, Locale locale, String id)
    Constructs a new JDOMNodePointer.
    Parameters:
      `node` - pointed
      `locale` - Locale
      `id` - String id

- ## Method Details

  - ### findEnclosingAttribute

    protected static String findEnclosingAttribute(Object n, String attrName, Namespace ns)
    Find the nearest occurrence of the specified attribute on the specified and enclosing elements.
    Parameters:
      `n` - current node
      `attrName` - attribute name
      `ns` - Namespace
    Returns:
      attribute value

  - ### getLocalName

    public static String getLocalName(Object node)
    Gets the local name of the specified node.
    Parameters:
      `node` - to check
    Returns:
      String local name

  - ### getPrefix

    public static String getPrefix(Object node)
    Gets the prefix from a given node.
    Parameters:
      `node` - to check
    Returns:
      String

  - ### testNode

    public static boolean testNode(NodePointer pointer, Object node, NodeTest test)
    Execute test against node on behalf of pointer.
    Parameters:
      `pointer` - Pointer
      `node` - to test
      `test` - to execute
    Returns:
      true if node passes test

  - ### asPath

    public String asPath()
    Description copied from class: `NodePointer`
    Returns an XPath that maps to this Pointer.
    Specified by:
      `asPath` in interface `Pointer`
    Overrides:
      `asPath` in class `NodePointer`
    Returns:
      String XPath expression

  - ### attributeIterator

    public NodeIterator attributeIterator(QName qName)
    Description copied from class: `NodePointer`
    Returns a NodeIterator that iterates over all attributes of the current node matching the supplied node name (could have a wildcard). May return null if the object does not support the attributes.
    Overrides:
      `attributeIterator` in class `NodePointer`
    Parameters:
      `qName` - the attribute name to test
    Returns:
      NodeIterator

  - ### childIterator

    public NodeIterator childIterator(NodeTest test, boolean reverse, NodePointer startWith)
    Description copied from class: `NodePointer`
    Returns a NodeIterator that iterates over all children or all children that match the given NodeTest, starting with the specified one.
    Overrides:
      `childIterator` in class `NodePointer`
    Parameters:
      `test` - NodeTest to filter children
      `reverse` - specified iteration direction
      `startWith` - the NodePointer to start with
    Returns:
      NodeIterator

  - ### compareChildNodePointers

    public int compareChildNodePointers(NodePointer pointer1, NodePointer pointer2)
    Description copied from class: `NodePointer`
    Compares two child NodePointers and returns a positive number, zero or a positive number according to the order of the pointers.
    Specified by:
      `compareChildNodePointers` in class `NodePointer`
    Parameters:
      `pointer1` - first pointer to be compared
      `pointer2` - second pointer to be compared
    Returns:
      int per Java comparison conventions

  - ### createAttribute

    public NodePointer createAttribute(JXPathContext context, QName qName)
    Description copied from class: `NodePointer`
    Called to create a non-existing attribute
    Overrides:
      `createAttribute` in class `NodePointer`
    Parameters:
      `context` - the owning JXPathCOntext
      `qName` - the QName at which an attribute should be created
    Returns:
      created NodePointer

  - ### createChild

    public NodePointer createChild(JXPathContext context, QName qName, int index)
    Description copied from class: `NodePointer`
    Called by a child pointer when it needs to create a parent object for a non-existent collection element. It may have to expand the collection, then create an element object and return a new pointer describing the newly created element.
    Overrides:
      `createChild` in class `NodePointer`
    Parameters:
      `context` - the owning JXPathCOntext
      `qName` - the QName at which a child should be created
      `index` - child index.
    Returns:
      created NodePointer

  - ### createChild

    public NodePointer createChild(JXPathContext context, QName qName, int index, Object value)
    Description copied from class: `NodePointer`
    Called by a child pointer if that child needs to assign the value supplied in the createPath(context, value) call to a non-existent node. This method may have to expand the collection in order to assign the element.
    Overrides:
      `createChild` in class `NodePointer`
    Parameters:
      `context` - the owning JXPathCOntext
      `qName` - the QName at which a child should be created
      `index` - child index.
      `value` - node value to set
    Returns:
      created NodePointer

  - ### equals

    public boolean equals(Object object)
    Overrides:
      `equals` in class `Object`

  - ### getBaseValue

    public Object getBaseValue()
    Description copied from class: `NodePointer`
    Gets the value represented by the pointer before indexing. So, if the node represents an element of a collection, this method returns the collection itself.
    Specified by:
      `getBaseValue` in class `NodePointer`
    Returns:
      Object value

  - ### getImmediateNode

    public Object getImmediateNode()
    Description copied from class: `NodePointer`
    Returns the object the pointer points to; does not convert it to a "canonical" type.
    Specified by:
      `getImmediateNode` in class `NodePointer`
    Returns:
      Object node

  - ### getLanguage

    protected String getLanguage()
    Gets the language of this element.
    Returns:
      String language

  - ### getLength

    public int getLength()
    Description copied from class: `NodePointer`
    If the pointer represents a collection (or collection element), returns the length of the collection. Otherwise returns 1 (even if the value is null).
    Specified by:
      `getLength` in class `NodePointer`
    Returns:
      the length.

  - ### getName

    public QName getName()
    Description copied from class: `NodePointer`
    Gets the name of this node. Can be null.
    Specified by:
      `getName` in class `NodePointer`
    Returns:
      QName The name of this node. Can be null.

  - ### getNamespaceResolver

    public NamespaceResolver getNamespaceResolver()
    Description copied from class: `NodePointer`
    Gets the NamespaceResolver associated with this NodePointer.
    Overrides:
      `getNamespaceResolver` in class `NodePointer`
    Returns:
      NamespaceResolver

  - ### getNamespaceURI

    public String getNamespaceURI()
    Description copied from class: `NodePointer`
    Returns the namespace URI associated with this Pointer.
    Overrides:
      `getNamespaceURI` in class `NodePointer`
    Returns:
      String uri

  - ### getNamespaceURI

    public String getNamespaceURI(String prefix)
    Description copied from class: `NodePointer`
    Decodes a namespace prefix to the corresponding URI.
    Overrides:
      `getNamespaceURI` in class `NodePointer`
    Parameters:
      `prefix` - prefix to decode
    Returns:
      String uri

  - ### getValue

    public Object getValue()
    Description copied from class: `NodePointer`
    By default, returns `getNode()`, can be overridden to return a "canonical" value, like for instance a DOM element should return its string value.
    Specified by:
      `getValue` in interface `Pointer`
    Overrides:
      `getValue` in class `NodePointer`
    Returns:
      Object value

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### isCollection

    public boolean isCollection()
    Description copied from class: `NodePointer`
    Returns `true` if the value of the pointer is an array or a Collection.
    Specified by:
      `isCollection` in class `NodePointer`
    Returns:
      boolean

  - ### isLanguage

    public boolean isLanguage(String lang)
    Returns true if the xml:lang attribute for the current node or its parent has the specified prefix lang. If no node has this prefix, calls `super.isLanguage(lang)`.
    Overrides:
      `isLanguage` in class `NodePointer`
    Parameters:
      `lang` - to compare
    Returns:
      true if this element uses the specified language.

  - ### isLeaf

    public boolean isLeaf()
    Description copied from class: `NodePointer`
    If true, this node does not have children
    Specified by:
      `isLeaf` in class `NodePointer`
    Returns:
      boolean

  - ### namespaceIterator

    public NodeIterator namespaceIterator()
    Description copied from class: `NodePointer`
    Returns a NodeIterator that iterates over all namespaces of the value currently pointed at. May return null if the object does not support the namespaces.
    Overrides:
      `namespaceIterator` in class `NodePointer`
    Returns:
      NodeIterator

  - ### namespacePointer

    public NodePointer namespacePointer(String prefix)
    Description copied from class: `NodePointer`
    Returns a NodePointer for the specified namespace. Will return null if namespaces are not supported. Will return UNKNOWN_NAMESPACE if there is no such namespace.
    Overrides:
      `namespacePointer` in class `NodePointer`
    Parameters:
      `prefix` - incoming namespace
    Returns:
      NodePointer for `namespace`

  - ### remove

    public void remove()
    Description copied from class: `NodePointer`
    Remove the node of the object graph this pointer points to.
    Overrides:
      `remove` in class `NodePointer`

  - ### setValue

    public void setValue(Object value)
    Description copied from class: `NodePointer`
    Converts the value to the required type and changes the corresponding object to that value.
    Specified by:
      `setValue` in interface `Pointer`
    Specified by:
      `setValue` in class `NodePointer`
    Parameters:
      `value` - the value to set

  - ### testNode

    public boolean testNode(NodeTest test)
    Description copied from class: `NodePointer`
    Checks if this Pointer matches the supplied NodeTest.
    Overrides:
      `testNode` in class `NodePointer`
    Parameters:
      `test` - the NodeTest to execute
    Returns:
      true if a match