Class ElementImpl

    • Method Detail

      • ensureNamespaceIsDeclared

        public void ensureNamespaceIsDeclared​(String prefix,
                                              String uri)
      • hasChildNodes

        public boolean hasChildNodes()
        Specified by:
        hasChildNodes in interface Node
      • cloneNode

        public Node cloneNode​(boolean deep)
        Specified by:
        cloneNode in interface Node
      • normalize

        public void normalize()
        Specified by:
        normalize in interface Node
      • hasAttributes

        public boolean hasAttributes()
        Specified by:
        hasAttributes in interface Node
      • isSameNode

        public boolean isSameNode​(Node other)
        Specified by:
        isSameNode in interface Node
      • isEqualNode

        public boolean isEqualNode​(Node arg)
        Specified by:
        isEqualNode in interface Node
      • addChildElement

        public SOAPElement addChildElement​(Name name)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new SOAPElement object initialized with the given Name object and adds the new element to this SOAPElement object.

        This method may be deprecated in a future release of SAAJ in favor of addChildElement(javax.xml.namespace.QName)

        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        name - a Name object with the XML name for the new element
        Returns:
        the new SOAPElement object that was created
        Throws:
        SOAPException - if there is an error in creating the SOAPElement object
        See Also:
        SOAPElement.addChildElement(javax.xml.namespace.QName)
      • addChildElement

        public SOAPElement addChildElement​(QName qname)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new SOAPElement object initialized with the given QName object and adds the new element to this SOAPElement object. The namespace, localname and prefix of the new SOAPElement are all taken from the qname argument.
        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        qname - a QName object with the XML name for the new element
        Returns:
        the new SOAPElement object that was created
        Throws:
        SOAPException - if there is an error in creating the SOAPElement object
        See Also:
        SOAPElement.addChildElement(Name)
      • addChildElement

        public SOAPElement addChildElement​(String localName)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new SOAPElement object initialized with the specified local name and adds the new element to this SOAPElement object. The new SOAPElement inherits any in-scope default namespace.
        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        localName - a String giving the local name for the element
        Returns:
        the new SOAPElement object that was created
        Throws:
        SOAPException - if there is an error in creating the SOAPElement object
      • addChildElement

        public SOAPElement addChildElement​(String localName,
                                           String prefix)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new SOAPElement object initialized with the specified local name and prefix and adds the new element to this SOAPElement object.
        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        localName - a String giving the local name for the new element
        prefix - a String giving the namespace prefix for the new element
        Returns:
        the new SOAPElement object that was created
        Throws:
        SOAPException - if the prefix is not valid in the context of this SOAPElement or if there is an error in creating the SOAPElement object
      • getNamespaceURI

        public String getNamespaceURI​(String prefix)
        Description copied from interface: SOAPElement
        Returns the URI of the namespace that has the given prefix.
        Specified by:
        getNamespaceURI in interface SOAPElement
        Parameters:
        prefix - a String giving the prefix of the namespace for which to search
        Returns:
        a String with the uri of the namespace that has the given prefix
      • setElementQName

        public SOAPElement setElementQName​(QName newName)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Changes the name of this Element to newName if possible. SOAP Defined elements such as SOAPEnvelope, SOAPHeader, SOAPBody etc. cannot have their names changed using this method. Any attempt to do so will result in a SOAPException being thrown.

        Callers should not rely on the element instance being renamed as is. Implementations could end up copying the content of the SOAPElement to a renamed instance.

        Specified by:
        setElementQName in interface SOAPElement
        Parameters:
        newName - the new name for the Element.
        Returns:
        The renamed Node
        Throws:
        SOAPException - if changing the name of this Element is not allowed.
      • createQName

        public QName createQName​(String localName,
                                 String prefix)
                          throws SOAPException
        Description copied from interface: SOAPElement
        Creates a QName whose namespace URI is the one associated with the parameter, prefix, in the context of this SOAPElement. The remaining elements of the new QName are taken directly from the parameters, localName and prefix.
        Specified by:
        createQName in interface SOAPElement
        Parameters:
        localName - a String containing the local part of the name.
        prefix - a String containing the prefix for the name.
        Returns:
        a QName with the specified localName and prefix, and with a namespace that is associated with the prefix in the context of this SOAPElement. This namespace will be the same as the one that would be returned by SOAPElement.getNamespaceURI(String) if it were given prefix as it's parameter.
        Throws:
        SOAPException - if the QName cannot be created.
      • getNamespacePrefix

        public String getNamespacePrefix​(String uri)
      • getNamespaceAttr

        protected Attr getNamespaceAttr​(String prefix)
      • addChildElement

        public SOAPElement addChildElement​(String localName,
                                           String prefix,
                                           String uri)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new SOAPElement object initialized with the specified local name, prefix, and URI and adds the new element to this SOAPElement object.
        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        localName - a String giving the local name for the new element
        prefix - a String giving the namespace prefix for the new element
        uri - a String giving the URI of the namespace to which the new element belongs
        Returns:
        the new SOAPElement object that was created
        Throws:
        SOAPException - if there is an error in creating the SOAPElement object
      • addChildElement

        public SOAPElement addChildElement​(SOAPElement element)
                                    throws SOAPException
        Description copied from interface: SOAPElement
        Add a SOAPElement as a child of this SOAPElement instance. The SOAPElement is expected to be created by a SOAPFactory. Callers should not rely on the element instance being added as is into the XML tree. Implementations could end up copying the content of the SOAPElement passed into an instance of a different SOAPElement implementation. For instance if addChildElement() is called on a SOAPHeader, element will be copied into an instance of a SOAPHeaderElement.

        The fragment rooted in element is either added as a whole or not at all, if there was an error.

        The fragment rooted in element cannot contain elements named "Envelope", "Header" or "Body" and in the SOAP namespace. Any namespace prefixes present in the fragment should be fully resolved using appropriate namespace declarations within the fragment itself.

        Specified by:
        addChildElement in interface SOAPElement
        Parameters:
        element - the SOAPElement to be added as a new child
        Returns:
        an instance representing the new SOAP element that was actually added to the tree.
        Throws:
        SOAPException - if there was an error in adding this element as a child
      • importElement

        protected Element importElement​(Element element)
      • findAndConvertChildElement

        protected SOAPElement findAndConvertChildElement​(NameImpl name)
      • addTextNode

        public SOAPElement addTextNode​(String text)
                                throws SOAPException
        Description copied from interface: SOAPElement
        Creates a new Text object initialized with the given String and adds it to this SOAPElement object.
        Specified by:
        addTextNode in interface SOAPElement
        Parameters:
        text - a String object with the textual content to be added
        Returns:
        the SOAPElement object into which the new Text object was inserted
        Throws:
        SOAPException - if there is an error in creating the new Text object or if it is not legal to attach it as a child to this SOAPElement
      • addAttribute

        public SOAPElement addAttribute​(QName qname,
                                        String value)
                                 throws SOAPException
        Description copied from interface: SOAPElement
        Adds an attribute with the specified name and value to this SOAPElement object.
        Specified by:
        addAttribute in interface SOAPElement
        Parameters:
        qname - a QName object with the name of the attribute
        value - a String giving the value of the attribute
        Returns:
        the SOAPElement object into which the attribute was inserted
        Throws:
        SOAPException - if there is an error in creating the Attribute, or it is invalid to set an attribute with QName qname on this SOAPElement.
        See Also:
        SOAPElement.addAttribute(Name, String)
      • addNamespaceDeclaration

        public SOAPElement addNamespaceDeclaration​(String prefix,
                                                   String uri)
                                            throws SOAPException
        Description copied from interface: SOAPElement
        Adds a namespace declaration with the specified prefix and URI to this SOAPElement object.
        Specified by:
        addNamespaceDeclaration in interface SOAPElement
        Parameters:
        prefix - a String giving the prefix of the namespace
        uri - a String giving the uri of the namespace
        Returns:
        the SOAPElement object into which this namespace declaration was inserted.
        Throws:
        SOAPException - if there is an error in creating the namespace
      • getAttributeValue

        public String getAttributeValue​(QName qname)
        Description copied from interface: SOAPElement
        Returns the value of the attribute with the specified qname.
        Specified by:
        getAttributeValue in interface SOAPElement
        Parameters:
        qname - a QName object with the qname of the attribute
        Returns:
        a String giving the value of the specified attribute, Null if there is no such attribute
        See Also:
        SOAPElement.getAttributeValue(Name)
      • getAllAttributes

        public Iterator<Name> getAllAttributes()
        Description copied from interface: SOAPElement
        Returns an Iterator over all of the attribute Name objects in this SOAPElement object. The iterator can be used to get the attribute names, which can then be passed to the method getAttributeValue to retrieve the value of each attribute.
        Specified by:
        getAllAttributes in interface SOAPElement
        Returns:
        an iterator over the names of the attributes
        See Also:
        SOAPElement.getAllAttributesAsQNames()
      • getAllAttributesAsQNames

        public Iterator<QName> getAllAttributesAsQNames()
        Description copied from interface: SOAPElement
        Returns an Iterator over all of the attributes in this SOAPElement as QName objects. The iterator can be used to get the attribute QName, which can then be passed to the method getAttributeValue to retrieve the value of each attribute.
        Specified by:
        getAllAttributesAsQNames in interface SOAPElement
        Returns:
        an iterator over the QNames of the attributes
        See Also:
        SOAPElement.getAllAttributes()
      • getNamespacePrefixes

        public Iterator<String> getNamespacePrefixes()
        Description copied from interface: SOAPElement
        Returns an Iterator over the namespace prefix Strings declared by this element. The prefixes returned by this iterator can be passed to the method getNamespaceURI to retrieve the URI of each namespace.
        Specified by:
        getNamespacePrefixes in interface SOAPElement
        Returns:
        an iterator over the namespace prefixes in this SOAPElement object
      • getVisibleNamespacePrefixes

        public Iterator<String> getVisibleNamespacePrefixes()
        Description copied from interface: SOAPElement
        Returns an Iterator over the namespace prefix Strings visible to this element. The prefixes returned by this iterator can be passed to the method getNamespaceURI to retrieve the URI of each namespace.
        Specified by:
        getVisibleNamespacePrefixes in interface SOAPElement
        Returns:
        an iterator over the namespace prefixes are within scope of this SOAPElement object
      • doGetNamespacePrefixes

        protected Iterator<String> doGetNamespacePrefixes​(boolean deep)
      • getElementName

        public Name getElementName()
        Description copied from interface: SOAPElement
        Returns the name of this SOAPElement object.
        Specified by:
        getElementName in interface SOAPElement
        Returns:
        a Name object with the name of this SOAPElement object
      • removeAttribute

        public boolean removeAttribute​(QName name)
        Description copied from interface: SOAPElement
        Removes the attribute with the specified qname.
        Specified by:
        removeAttribute in interface SOAPElement
        Parameters:
        name - the QName object with the qname of the attribute to be removed
        Returns:
        true if the attribute was removed successfully; false if it was not
        See Also:
        SOAPElement.removeAttribute(Name)
      • removeNamespaceDeclaration

        public boolean removeNamespaceDeclaration​(String prefix)
        Description copied from interface: SOAPElement
        Removes the namespace declaration corresponding to the given prefix.
        Specified by:
        removeNamespaceDeclaration in interface SOAPElement
        Parameters:
        prefix - a String giving the prefix for which to search
        Returns:
        true if the namespace declaration was removed successfully; false if it was not
      • getChildElements

        public Iterator<Node> getChildElements()
        Description copied from interface: SOAPElement
        Returns an Iterator over all the immediate child Nodes of this element. This includes jakarta.xml.soap.Text objects as well as SOAPElement objects.

        Calling this method must cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by SOAPElement, SOAPHeaderElement, SOAPBodyElement or jakarta.xml.soap.Text nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator. This behavior can be avoided by calling the equivalent DOM APIs. See jakarta.xml.soap for more details.

        Specified by:
        getChildElements in interface SOAPElement
        Returns:
        an iterator with the content of this SOAPElement object
      • getChildElementNodes

        protected Iterator<Node> getChildElementNodes()
      • getChildElements

        public Iterator<Node> getChildElements​(Name name)
        Description copied from interface: SOAPElement
        Returns an Iterator over all the immediate child Nodes of this element with the specified name. All of these children will be SOAPElement nodes.

        Calling this method must cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by SOAPElement, SOAPHeaderElement, SOAPBodyElement or jakarta.xml.soap.Text nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator. This behavior can be avoided by calling the equivalent DOM APIs. See jakarta.xml.soap for more details.

        Specified by:
        getChildElements in interface SOAPElement
        Parameters:
        name - a Name object with the name of the child elements to be returned
        Returns:
        an Iterator object over all the elements in this SOAPElement object with the specified name
        See Also:
        SOAPElement.getChildElements(javax.xml.namespace.QName)
      • getChildElements

        public Iterator<Node> getChildElements​(QName qname)
        Description copied from interface: SOAPElement
        Returns an Iterator over all the immediate child Nodes of this element with the specified qname. All of these children will be SOAPElement nodes.

        Calling this method must cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by SOAPElement, SOAPHeaderElement, SOAPBodyElement or jakarta.xml.soap.Text nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator. This behavior can be avoided by calling the equivalent DOM APIs. See jakarta.xml.soap for more details.

        Specified by:
        getChildElements in interface SOAPElement
        Parameters:
        qname - a QName object with the qname of the child elements to be returned
        Returns:
        an Iterator object over all the elements in this SOAPElement object with the specified qname
        See Also:
        SOAPElement.getChildElements(Name)
      • removeContents

        public void removeContents()
        Description copied from interface: SOAPElement
        Detaches all children of this SOAPElement.

        This method is useful for rolling back the construction of partially completed SOAPHeaders and SOAPBodys in preparation for sending a fault when an error condition is detected. It is also useful for recycling portions of a document within a SOAP message.

        Specified by:
        removeContents in interface SOAPElement
      • getValue

        public String getValue()
        Description copied from interface: Node
        Returns the value of this node if this is a Text node or the value of the immediate child of this node otherwise. If there is an immediate child of this Node that it is a Text node then it's value will be returned. If there is more than one Text node then the value of the first Text Node will be returned. Otherwise null is returned.
        Specified by:
        getValue in interface Node
        Returns:
        a String with the text of this node if this is a Text node or the text contained by the first immediate child of this Node object that is a Text object if such a child exists; null otherwise.
      • setValue

        public void setValue​(String value)
        Description copied from interface: Node
        If this is a Text node then this method will set its value, otherwise it sets the value of the immediate (Text) child of this node. The value of the immediate child of this node can be set only if, there is one child node and that node is a Text node, or if there are no children in which case a child Text node will be created.
        Specified by:
        setValue in interface Node
        Parameters:
        value - value to set on the Text node
      • getValueNodeStrict

        protected Node getValueNodeStrict()
      • getValueNode

        protected Node getValueNode()
      • setParentElement

        public void setParentElement​(SOAPElement element)
                              throws SOAPException
        Description copied from interface: Node
        Sets the parent of this Node object to the given SOAPElement object.
        Specified by:
        setParentElement in interface Node
        Parameters:
        element - the SOAPElement object to be set as the parent of this Node object
        Throws:
        SOAPException - if there is a problem in setting the parent to the given element
        See Also:
        Node.getParentElement()
      • getParentElement

        public SOAPElement getParentElement()
        Description copied from interface: Node
        Returns the parent element of this Node object. This method can throw an UnsupportedOperationException if the tree is not kept in memory.
        Specified by:
        getParentElement in interface Node
        Returns:
        the SOAPElement object that is the parent of this Node object or null if this Node object is root
        See Also:
        Node.setParentElement(jakarta.xml.soap.SOAPElement)
      • getSOAPNamespace

        protected String getSOAPNamespace()
      • detachNode

        public void detachNode()
        Description copied from interface: Node
        Removes this Node object from the tree.
        Specified by:
        detachNode in interface Node
      • tryToFindEncodingStyleAttributeName

        public void tryToFindEncodingStyleAttributeName()
      • recycleNode

        public void recycleNode()
        Description copied from interface: Node
        Notifies the implementation that this Node object is no longer being used by the application and that the implementation is free to reuse this object for nodes that may be created later.

        Calling the method recycleNode implies that the method detachNode has been called previously.

        Specified by:
        recycleNode in interface Node
      • getNamespaceAttrFrom

        protected static Attr getNamespaceAttrFrom​(Element element,
                                                   String prefix)
      • getAllAttributesFrom

        protected static Iterator<Name> getAllAttributesFrom​(Element element)
      • getAttributeValueFrom

        protected static String getAttributeValueFrom​(Element element,
                                                      Name name)
      • getQualifiedName

        public static String getQualifiedName​(QName name)
      • getLocalPart

        public static String getLocalPart​(String qualifiedName)
      • getPrefix

        public static String getPrefix​(String qualifiedName)
      • isNamespaceQualified

        protected boolean isNamespaceQualified​(Name name)
      • isNamespaceQualified

        protected boolean isNamespaceQualified​(QName name)
      • getNodeType

        public short getNodeType()
        Specified by:
        getNodeType in interface Node
      • getDomElement

        public Element getDomElement()