Class SOAPDocumentImpl

  • All Implemented Interfaces:
    java.io.Serializable, org.w3c.dom.Document, org.w3c.dom.Node

    public class SOAPDocumentImpl
    extends java.lang.Object
    implements org.w3c.dom.Document, java.io.Serializable
    SOAPDcoumentImpl implements the Document API for SOAPPART. At the moment, it again delgate the XERCES DOM Implementation Here is my argument on it: I guess that there is 3 way to implement this. - fully implement the DOM API here myself. => This is too much and duplicated work. - extends XERCES Implementation => this makes we are fixed to one Implementation - choose delgate depends on the user's parser preference => This is the practically best solution I have now
    Author:
    Heejune Ahn (cityboy@tmax.co.kr)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.w3c.dom.Document delegate  
      protected SOAPPart soapPart  
      • Fields inherited from interface org.w3c.dom.Node

        ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.w3c.dom.Node adoptNode​(org.w3c.dom.Node source)  
      org.w3c.dom.Node appendChild​(org.w3c.dom.Node newChild)  
      org.w3c.dom.Node cloneNode​(boolean deep)  
      short compareDocumentPosition​(org.w3c.dom.Node other)  
      org.w3c.dom.Attr createAttribute​(java.lang.String name)  
      org.w3c.dom.Attr createAttributeNS​(java.lang.String namespaceURI, java.lang.String qualifiedName)
      Attribute is not particularly dealt with in SAAJ.
      org.w3c.dom.CDATASection createCDATASection​(java.lang.String data)
      Creates a CDATASection node whose value is the specified string.
      org.w3c.dom.Comment createComment​(java.lang.String data)
      Creates a Comment node given the specified string.
      org.w3c.dom.DocumentFragment createDocumentFragment()
      Creates an empty DocumentFragment object.
      org.w3c.dom.Element createElement​(java.lang.String tagName)
      based on the tagName, we will make different kind SOAP Elements Instance Is really we can determine the Type by the Tagname???
      org.w3c.dom.Element createElementNS​(java.lang.String namespaceURI, java.lang.String qualifiedName)
      Return SOAPElements (what if they want SOAPEnvelope or Header/Body?)
      org.w3c.dom.EntityReference createEntityReference​(java.lang.String name)  
      org.w3c.dom.ProcessingInstruction createProcessingInstruction​(java.lang.String target, java.lang.String data)
      Creates a ProcessingInstruction node given the specified name and data strings.
      org.w3c.dom.Text createTextNode​(java.lang.String data)
      Creates a Text node given the specified string.
      org.w3c.dom.NamedNodeMap getAttributes()  
      java.lang.String getBaseURI()
      DOM Level 3 stubs
      org.w3c.dom.NodeList getChildNodes()  
      org.w3c.dom.DocumentType getDoctype()  
      org.w3c.dom.Element getDocumentElement()
      should not be called, the method will be handled in SOAPPart
      java.lang.String getDocumentURI()  
      org.w3c.dom.DOMConfiguration getDomConfig()  
      org.w3c.dom.Element getElementById​(java.lang.String elementId)
      Returns the Element whose ID is given by elementId.
      org.w3c.dom.NodeList getElementsByTagName​(java.lang.String localName)
      search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
      org.w3c.dom.NodeList getElementsByTagNameNS​(java.lang.String namespaceURI, java.lang.String localName)
      search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
      java.lang.Object getFeature​(java.lang.String feature, java.lang.String version)  
      org.w3c.dom.Node getFirstChild()
      Do we have to count the Attributes as node ????
      org.w3c.dom.DOMImplementation getImplementation()  
      java.lang.String getInputEncoding()  
      org.w3c.dom.Node getLastChild()  
      java.lang.String getLocalName()  
      java.lang.String getNamespaceURI()  
      org.w3c.dom.Node getNextSibling()  
      java.lang.String getNodeName()
      Node Implementation
      short getNodeType()
      override it in sub-classes
      java.lang.String getNodeValue()  
      org.w3c.dom.Document getOwnerDocument()
      we have to have a link to them...
      org.w3c.dom.Node getParentNode()  
      java.lang.String getPrefix()  
      org.w3c.dom.Node getPreviousSibling()  
      boolean getStrictErrorChecking()  
      java.lang.String getTextContent()  
      java.lang.Object getUserData​(java.lang.String key)  
      java.lang.String getXmlEncoding()  
      boolean getXmlStandalone()  
      java.lang.String getXmlVersion()  
      boolean hasAttributes()  
      boolean hasChildNodes()  
      org.w3c.dom.Node importNode​(org.w3c.dom.Node importedNode, boolean deep)  
      org.w3c.dom.Node insertBefore​(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)  
      boolean isDefaultNamespace​(java.lang.String namespaceURI)  
      boolean isEqualNode​(org.w3c.dom.Node arg)  
      boolean isSameNode​(org.w3c.dom.Node other)  
      boolean isSupported​(java.lang.String feature, java.lang.String version)  
      java.lang.String lookupNamespaceURI​(java.lang.String prefix)  
      java.lang.String lookupPrefix​(java.lang.String namespaceURI)  
      void normalize()  
      void normalizeDocument()  
      org.w3c.dom.Node removeChild​(org.w3c.dom.Node oldChild)  
      org.w3c.dom.Node renameNode​(org.w3c.dom.Node n, java.lang.String namespaceURI, java.lang.String qualifiedName)  
      org.w3c.dom.Node replaceChild​(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)  
      void setDocumentURI​(java.lang.String documentURI)  
      void setNamespaceURI​(java.lang.String nsURI)  
      void setNodeValue​(java.lang.String nodeValue)  
      void setPrefix​(java.lang.String prefix)  
      void setStrictErrorChecking​(boolean strictErrorChecking)  
      void setTextContent​(java.lang.String textContent)  
      java.lang.Object setUserData​(java.lang.String key, java.lang.Object data, org.w3c.dom.UserDataHandler handler)  
      void setXmlStandalone​(boolean xmlStandalone)  
      void setXmlVersion​(java.lang.String xmlVersion)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • delegate

        protected org.w3c.dom.Document delegate
    • Constructor Detail

      • SOAPDocumentImpl

        public SOAPDocumentImpl​(SOAPPart sp)
        Construct the Document
        Parameters:
        sp - the soap part
    • Method Detail

      • getDoctype

        public org.w3c.dom.DocumentType getDoctype()
        Specified by:
        getDoctype in interface org.w3c.dom.Document
        Returns:
      • getImplementation

        public org.w3c.dom.DOMImplementation getImplementation()
        Specified by:
        getImplementation in interface org.w3c.dom.Document
      • getDocumentElement

        public org.w3c.dom.Element getDocumentElement()
        should not be called, the method will be handled in SOAPPart
        Specified by:
        getDocumentElement in interface org.w3c.dom.Document
        Returns:
      • createElement

        public org.w3c.dom.Element createElement​(java.lang.String tagName)
                                          throws org.w3c.dom.DOMException
        based on the tagName, we will make different kind SOAP Elements Instance Is really we can determine the Type by the Tagname???
        Specified by:
        createElement in interface org.w3c.dom.Document
        Parameters:
        tagName -
        Returns:
        Throws:
        org.w3c.dom.DOMException
      • createDocumentFragment

        public org.w3c.dom.DocumentFragment createDocumentFragment()
        Creates an empty DocumentFragment object. @todo not implemented yet
        Specified by:
        createDocumentFragment in interface org.w3c.dom.Document
        Returns:
        A new DocumentFragment.
      • createTextNode

        public org.w3c.dom.Text createTextNode​(java.lang.String data)
        Creates a Text node given the specified string.
        Specified by:
        createTextNode in interface org.w3c.dom.Document
        Parameters:
        data - The data for the node.
        Returns:
        The new Text object.
      • createComment

        public org.w3c.dom.Comment createComment​(java.lang.String data)
        Creates a Comment node given the specified string.
        Specified by:
        createComment in interface org.w3c.dom.Document
        Parameters:
        data - The data for the node.
        Returns:
        The new Comment object.
      • createCDATASection

        public org.w3c.dom.CDATASection createCDATASection​(java.lang.String data)
                                                    throws org.w3c.dom.DOMException
        Creates a CDATASection node whose value is the specified string.
        Specified by:
        createCDATASection in interface org.w3c.dom.Document
        Parameters:
        data - The data for the CDATASection contents.
        Returns:
        The new CDATASection object.
        Throws:
        org.w3c.dom.DOMException - NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
      • createProcessingInstruction

        public org.w3c.dom.ProcessingInstruction createProcessingInstruction​(java.lang.String target,
                                                                             java.lang.String data)
                                                                      throws org.w3c.dom.DOMException
        Creates a ProcessingInstruction node given the specified name and data strings.
        Specified by:
        createProcessingInstruction in interface org.w3c.dom.Document
        Parameters:
        target - The target part of the processing instruction.
        data - The data for the node.
        Returns:
        The new ProcessingInstruction object.
        Throws:
        org.w3c.dom.DOMException - INVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
        NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
      • createAttribute

        public org.w3c.dom.Attr createAttribute​(java.lang.String name)
                                         throws org.w3c.dom.DOMException
        Specified by:
        createAttribute in interface org.w3c.dom.Document
        Throws:
        org.w3c.dom.DOMException
      • createEntityReference

        public org.w3c.dom.EntityReference createEntityReference​(java.lang.String name)
                                                          throws org.w3c.dom.DOMException
        Specified by:
        createEntityReference in interface org.w3c.dom.Document
        Parameters:
        name -
        Returns:
        Throws:
        org.w3c.dom.DOMException
      • importNode

        public org.w3c.dom.Node importNode​(org.w3c.dom.Node importedNode,
                                           boolean deep)
                                    throws org.w3c.dom.DOMException
        Specified by:
        importNode in interface org.w3c.dom.Document
        Throws:
        org.w3c.dom.DOMException
      • createElementNS

        public org.w3c.dom.Element createElementNS​(java.lang.String namespaceURI,
                                                   java.lang.String qualifiedName)
                                            throws org.w3c.dom.DOMException
        Return SOAPElements (what if they want SOAPEnvelope or Header/Body?)
        Specified by:
        createElementNS in interface org.w3c.dom.Document
        Parameters:
        namespaceURI -
        qualifiedName -
        Returns:
        Throws:
        org.w3c.dom.DOMException
      • createAttributeNS

        public org.w3c.dom.Attr createAttributeNS​(java.lang.String namespaceURI,
                                                  java.lang.String qualifiedName)
                                           throws org.w3c.dom.DOMException
        Attribute is not particularly dealt with in SAAJ.
        Specified by:
        createAttributeNS in interface org.w3c.dom.Document
        Throws:
        org.w3c.dom.DOMException
      • getElementsByTagNameNS

        public org.w3c.dom.NodeList getElementsByTagNameNS​(java.lang.String namespaceURI,
                                                           java.lang.String localName)
        search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
        Specified by:
        getElementsByTagNameNS in interface org.w3c.dom.Document
      • getElementsByTagName

        public org.w3c.dom.NodeList getElementsByTagName​(java.lang.String localName)
        search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
        Specified by:
        getElementsByTagName in interface org.w3c.dom.Document
      • getElementById

        public org.w3c.dom.Element getElementById​(java.lang.String elementId)
        Returns the Element whose ID is given by elementId. If no such element exists, returns null. Behavior is not defined if more than one element has this ID. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.
        Specified by:
        getElementById in interface org.w3c.dom.Document
        Parameters:
        elementId - The unique id value for an element.
        Returns:
        The matching element.
        Since:
        DOM Level 2
      • getNodeName

        public java.lang.String getNodeName()
        Node Implementation
        Specified by:
        getNodeName in interface org.w3c.dom.Node
      • getNodeValue

        public java.lang.String getNodeValue()
                                      throws org.w3c.dom.DOMException
        Specified by:
        getNodeValue in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • setNodeValue

        public void setNodeValue​(java.lang.String nodeValue)
                          throws org.w3c.dom.DOMException
        Specified by:
        setNodeValue in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • getNodeType

        public short getNodeType()
        override it in sub-classes
        Specified by:
        getNodeType in interface org.w3c.dom.Node
        Returns:
      • getParentNode

        public org.w3c.dom.Node getParentNode()
        Specified by:
        getParentNode in interface org.w3c.dom.Node
      • getChildNodes

        public org.w3c.dom.NodeList getChildNodes()
        Specified by:
        getChildNodes in interface org.w3c.dom.Node
      • getFirstChild

        public org.w3c.dom.Node getFirstChild()
        Do we have to count the Attributes as node ????
        Specified by:
        getFirstChild in interface org.w3c.dom.Node
        Returns:
      • getLastChild

        public org.w3c.dom.Node getLastChild()
        Specified by:
        getLastChild in interface org.w3c.dom.Node
        Returns:
      • getPreviousSibling

        public org.w3c.dom.Node getPreviousSibling()
        Specified by:
        getPreviousSibling in interface org.w3c.dom.Node
      • getNextSibling

        public org.w3c.dom.Node getNextSibling()
        Specified by:
        getNextSibling in interface org.w3c.dom.Node
      • getAttributes

        public org.w3c.dom.NamedNodeMap getAttributes()
        Specified by:
        getAttributes in interface org.w3c.dom.Node
      • getOwnerDocument

        public org.w3c.dom.Document getOwnerDocument()
        we have to have a link to them...
        Specified by:
        getOwnerDocument in interface org.w3c.dom.Node
      • insertBefore

        public org.w3c.dom.Node insertBefore​(org.w3c.dom.Node newChild,
                                             org.w3c.dom.Node refChild)
                                      throws org.w3c.dom.DOMException
        Specified by:
        insertBefore in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • replaceChild

        public org.w3c.dom.Node replaceChild​(org.w3c.dom.Node newChild,
                                             org.w3c.dom.Node oldChild)
                                      throws org.w3c.dom.DOMException
        Specified by:
        replaceChild in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • removeChild

        public org.w3c.dom.Node removeChild​(org.w3c.dom.Node oldChild)
                                     throws org.w3c.dom.DOMException
        Specified by:
        removeChild in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • appendChild

        public org.w3c.dom.Node appendChild​(org.w3c.dom.Node newChild)
                                     throws org.w3c.dom.DOMException
        Specified by:
        appendChild in interface org.w3c.dom.Node
        Throws:
        org.w3c.dom.DOMException
      • hasChildNodes

        public boolean hasChildNodes()
        Specified by:
        hasChildNodes in interface org.w3c.dom.Node
      • cloneNode

        public org.w3c.dom.Node cloneNode​(boolean deep)
        Specified by:
        cloneNode in interface org.w3c.dom.Node
      • normalize

        public void normalize()
        Specified by:
        normalize in interface org.w3c.dom.Node
      • isSupported

        public boolean isSupported​(java.lang.String feature,
                                   java.lang.String version)
        Specified by:
        isSupported in interface org.w3c.dom.Node
      • getPrefix

        public java.lang.String getPrefix()
        Specified by:
        getPrefix in interface org.w3c.dom.Node
      • setPrefix

        public void setPrefix​(java.lang.String prefix)
        Specified by:
        setPrefix in interface org.w3c.dom.Node
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        Specified by:
        getNamespaceURI in interface org.w3c.dom.Node
      • setNamespaceURI

        public void setNamespaceURI​(java.lang.String nsURI)
      • getLocalName

        public java.lang.String getLocalName()
        Specified by:
        getLocalName in interface org.w3c.dom.Node
      • hasAttributes

        public boolean hasAttributes()
        Specified by:
        hasAttributes in interface org.w3c.dom.Node
      • getBaseURI

        public java.lang.String getBaseURI()
        DOM Level 3 stubs
        Specified by:
        getBaseURI in interface org.w3c.dom.Node
      • getXmlStandalone

        public boolean getXmlStandalone()
        Specified by:
        getXmlStandalone in interface org.w3c.dom.Document
      • getStrictErrorChecking

        public boolean getStrictErrorChecking()
        Specified by:
        getStrictErrorChecking in interface org.w3c.dom.Document
      • setXmlStandalone

        public void setXmlStandalone​(boolean xmlStandalone)
        Specified by:
        setXmlStandalone in interface org.w3c.dom.Document
      • renameNode

        public org.w3c.dom.Node renameNode​(org.w3c.dom.Node n,
                                           java.lang.String namespaceURI,
                                           java.lang.String qualifiedName)
        Specified by:
        renameNode in interface org.w3c.dom.Document
      • setStrictErrorChecking

        public void setStrictErrorChecking​(boolean strictErrorChecking)
        Specified by:
        setStrictErrorChecking in interface org.w3c.dom.Document
      • setUserData

        public java.lang.Object setUserData​(java.lang.String key,
                                            java.lang.Object data,
                                            org.w3c.dom.UserDataHandler handler)
        Specified by:
        setUserData in interface org.w3c.dom.Node
      • getInputEncoding

        public java.lang.String getInputEncoding()
        Specified by:
        getInputEncoding in interface org.w3c.dom.Document
      • getXmlEncoding

        public java.lang.String getXmlEncoding()
        Specified by:
        getXmlEncoding in interface org.w3c.dom.Document
      • setTextContent

        public void setTextContent​(java.lang.String textContent)
        Specified by:
        setTextContent in interface org.w3c.dom.Node
      • isSameNode

        public boolean isSameNode​(org.w3c.dom.Node other)
        Specified by:
        isSameNode in interface org.w3c.dom.Node
      • getDocumentURI

        public java.lang.String getDocumentURI()
        Specified by:
        getDocumentURI in interface org.w3c.dom.Document
      • setDocumentURI

        public void setDocumentURI​(java.lang.String documentURI)
        Specified by:
        setDocumentURI in interface org.w3c.dom.Document
      • getFeature

        public java.lang.Object getFeature​(java.lang.String feature,
                                           java.lang.String version)
        Specified by:
        getFeature in interface org.w3c.dom.Node
      • adoptNode

        public org.w3c.dom.Node adoptNode​(org.w3c.dom.Node source)
        Specified by:
        adoptNode in interface org.w3c.dom.Document
      • isDefaultNamespace

        public boolean isDefaultNamespace​(java.lang.String namespaceURI)
        Specified by:
        isDefaultNamespace in interface org.w3c.dom.Node
      • isEqualNode

        public boolean isEqualNode​(org.w3c.dom.Node arg)
        Specified by:
        isEqualNode in interface org.w3c.dom.Node
      • setXmlVersion

        public void setXmlVersion​(java.lang.String xmlVersion)
        Specified by:
        setXmlVersion in interface org.w3c.dom.Document
      • getXmlVersion

        public java.lang.String getXmlVersion()
        Specified by:
        getXmlVersion in interface org.w3c.dom.Document
      • lookupPrefix

        public java.lang.String lookupPrefix​(java.lang.String namespaceURI)
        Specified by:
        lookupPrefix in interface org.w3c.dom.Node
      • getUserData

        public java.lang.Object getUserData​(java.lang.String key)
        Specified by:
        getUserData in interface org.w3c.dom.Node
      • getTextContent

        public java.lang.String getTextContent()
        Specified by:
        getTextContent in interface org.w3c.dom.Node
      • normalizeDocument

        public void normalizeDocument()
        Specified by:
        normalizeDocument in interface org.w3c.dom.Document
      • lookupNamespaceURI

        public java.lang.String lookupNamespaceURI​(java.lang.String prefix)
        Specified by:
        lookupNamespaceURI in interface org.w3c.dom.Node
      • getDomConfig

        public org.w3c.dom.DOMConfiguration getDomConfig()
        Specified by:
        getDomConfig in interface org.w3c.dom.Document
      • compareDocumentPosition

        public short compareDocumentPosition​(org.w3c.dom.Node other)
        Specified by:
        compareDocumentPosition in interface org.w3c.dom.Node