org.apache.xmlbeans.impl.soap

## Interface Node

- All Superinterfaces:
    Node
  All Known Subinterfaces:
    Detail, DetailEntry, SOAPBody, SOAPBodyElement, SOAPElement, SOAPEnvelope, SOAPFault, SOAPFaultElement, SOAPHeader, SOAPHeaderElement, Text

      public interface Node
      extends Node

  A representation of a node (element) in a DOM representation of an XML document that provides some tree manipulation methods. This interface provides methods for getting the value of a node, for getting and setting the parent of a node, and for removing a node.

- - ### Field Summary

    - ### 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 Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `detachNode()` Removes this `Node` object from the tree.
    `SOAPElement` | `getParentElement()` Returns the parent element of this `Node` object.
    `String` | `getValue()` Returns the the value of the immediate child of this `Node` object if a child exists and its value is text.
    `void` | `recycleNode()` 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.
    `void` | `setParentElement(SOAPElement parent)` Sets the parent of this `Node` object to the given `SOAPElement` object.
    `void` | `setValue(String value)` 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.

    - ### Methods inherited from interface org.w3c.dom.Node

      `appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData`

- - ### Method Detail

    - #### getValue

          String getValue()

      Returns the the value of the immediate child of this `Node` object if a child exists and its value is text.
      Returns:
        a `String` with the text of the immediate child of this `Node` object if (1) there is a child and (2) the child is a `Text` object; `null` otherwise

    - #### setParentElement

          void setParentElement(SOAPElement parent)
                         throws SOAPException

      Sets the parent of this `Node` object to the given `SOAPElement` object.
      Parameters:
        `parent` - 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:
        `getParentElement()`

    - #### getParentElement

          SOAPElement getParentElement()

      Returns the parent element of this `Node` object. This method can throw an `UnsupportedOperationException` if the tree is not kept in memory.
      Returns:
        the `SOAPElement` object that is the parent of this `Node` object or `null` if this `Node` object is root
      Throws:
        `UnsupportedOperationException` - if the whole tree is not kept in memory
      See Also:
        `setParentElement(SOAPElement)`

    - #### detachNode

          void detachNode()

      Removes this `Node` object from the tree. Once removed, this node can be garbage collected if there are no application references to it.

    - #### recycleNode

          void recycleNode()

      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.

    - #### setValue

          void setValue(String value)

      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.
      Parameters:
        `value` - the text to set
      Throws:
        `IllegalStateException` - if the node is not a Text node and either has more than one child node or has a child node that is not a Text node