Class JDOMNodePointer

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, Pointer

    public class JDOMNodePointer
    extends NodePointer
    A Pointer that points to a DOM node.
    Version:
    $Revision: 668329 $ $Date: 2008-06-16 16:59:48 -0500 (Mon, 16 Jun 2008) $
    See Also:
    Serialized Form
    • Field Detail

      • node

        private java.lang.Object node
      • id

        private java.lang.String id
      • XML_NAMESPACE_URI

        public static final java.lang.String XML_NAMESPACE_URI
        XML ns uri
        See Also:
        Constant Field Values
      • XMLNS_NAMESPACE_URI

        public static final java.lang.String XMLNS_NAMESPACE_URI
        XMLNS ns uri
        See Also:
        Constant Field Values
    • Constructor Detail

      • JDOMNodePointer

        public JDOMNodePointer​(java.lang.Object node,
                               java.util.Locale locale)
        Create a new JDOMNodePointer.
        Parameters:
        node - pointed
        locale - Locale
      • JDOMNodePointer

        public JDOMNodePointer​(java.lang.Object node,
                               java.util.Locale locale,
                               java.lang.String id)
        Create a new JDOMNodePointer.
        Parameters:
        node - pointed
        locale - Locale
        id - String id
      • JDOMNodePointer

        public JDOMNodePointer​(NodePointer parent,
                               java.lang.Object node)
        Create a new JDOMNodePointer.
        Parameters:
        parent - NodePointer
        node - pointed
    • Method Detail

      • 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
      • attributeIterator

        public NodeIterator attributeIterator​(QName name)
        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:
        name - the attribute name to test
        Returns:
        NodeIterator
      • 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​(java.lang.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
      • getNamespaceURI

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

        private static java.lang.String getNamespaceURI​(java.lang.Object node)
        Get the ns uri of the specified node.
        Parameters:
        node - Node to check
        Returns:
        String
      • getNamespaceURI

        public java.lang.String getNamespaceURI​(java.lang.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
      • 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
      • getBaseValue

        public java.lang.Object getBaseValue()
        Description copied from class: NodePointer
        Returns 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
      • 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
      • 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:
        int
      • 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
      • getName

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

        public java.lang.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
      • getValue

        public java.lang.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
      • setValue

        public void setValue​(java.lang.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
      • addContent

        private void addContent​(java.util.List content)
        Add the specified content to this element.
        Parameters:
        content - List
      • 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
      • testNode

        public static boolean testNode​(NodePointer pointer,
                                       java.lang.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
      • equalStrings

        private static boolean equalStrings​(java.lang.String s1,
                                            java.lang.String s2)
        Learn whether two strings are == or .equals()
        Parameters:
        s1 - string 1
        s2 - string 2
        Returns:
        true if equal
      • getPrefix

        public static java.lang.String getPrefix​(java.lang.Object node)
        Get the prefix from a given node.
        Parameters:
        node - to check
        Returns:
        String
      • getLocalName

        public static java.lang.String getLocalName​(java.lang.Object node)
        Get the local name of the specified node.
        Parameters:
        node - to check
        Returns:
        String local name
      • isLanguage

        public boolean isLanguage​(java.lang.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.
      • getLanguage

        protected java.lang.String getLanguage()
        Get the language of this element.
        Returns:
        String language
      • findEnclosingAttribute

        protected static java.lang.String findEnclosingAttribute​(java.lang.Object n,
                                                                 java.lang.String attrName,
                                                                 org.jdom.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
      • nodeParent

        private static org.jdom.Element nodeParent​(java.lang.Object node)
        Get the parent of the specified node.
        Parameters:
        node - to check
        Returns:
        parent Element
      • createChild

        public NodePointer createChild​(JXPathContext context,
                                       QName name,
                                       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
        name - the QName at which a child should be created
        index - child index.
        Returns:
        created NodePointer
      • createChild

        public NodePointer createChild​(JXPathContext context,
                                       QName name,
                                       int index,
                                       java.lang.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
        name - the QName at which a child should be created
        index - child index.
        value - node value to set
        Returns:
        created NodePointer
      • createAttribute

        public NodePointer createAttribute​(JXPathContext context,
                                           QName name)
        Description copied from class: NodePointer
        Called to create a non-existing attribute
        Overrides:
        createAttribute in class NodePointer
        Parameters:
        context - the owning JXPathCOntext
        name - the QName at which an attribute should be created
        Returns:
        created NodePointer
      • 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
      • asPath

        public java.lang.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
      • getRelativePositionByName

        private int getRelativePositionByName()
        Get relative position of this among like-named siblings.
        Returns:
        1..n
      • getRelativePositionOfElement

        private int getRelativePositionOfElement()
        Get relative position of this among all siblings.
        Returns:
        1..n
      • getRelativePositionOfTextNode

        private int getRelativePositionOfTextNode()
        Get the relative position of this among sibling text nodes.
        Returns:
        1..n
      • getRelativePositionOfPI

        private int getRelativePositionOfPI()
        Get the relative position of this among same-target processing instruction siblings.
        Returns:
        1..n
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object object)
        Overrides:
        equals in class java.lang.Object