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
`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