Package: groovy.xml.slurpersupport

## [Java] Class Node

- groovy.xml.slurpersupport.Node

- All Implemented Interfaces and Traits:
    Writable

      public class Node
      extends Object
      implements Writable

  Represents a node.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `Node(Node parent, String name, Map attributes, Map attributeNamespaces, String namespaceURI)` Parameters: `parent` - the parent node

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `addChild(Object child)` Adds an object as a new child to this Node.
    `` | `protected void` | `appendNode(Object newValue, GPathResult result)` Appends literal content or lazy markup to this node body.
    `` | `public Map` | `attributes()` Returns a map of the attributes of this Node.
    `` | `public void` | `build(GroovyObject builder, Map namespaceMap, Map<String, String> namespaceTagHints)` Rebuilds this node through the streaming markup infrastructure.
    `` | `public Iterator` | `childNodes()` Returns an iterator over the child nodes of this Node.
    `` | `public List` | `children()` Returns a list of the children of this Node.
    `` | `public List<String>` | `localText()` Returns the list of any direct String nodes of this node.
    `` | `public String` | `name()` Returns the name of this Node.
    `` | `public String` | `namespaceURI()` Returns the URI of the namespace of this Node.
    `` | `public Node` | `parent()` Returns the parent of this Node.
    `` | `protected void` | `replaceBody(Object newValue)` Replaces the current body of this Node with the passed object.
    `` | `public void` | `replaceNode(Closure replacementClosure, GPathResult result)` Queues a lazy replacement for this node.
    `` | `public String` | `text()` Returns a string containing the text of the children of this Node.
    `` | `public Writer` | `writeTo(Writer out)` * Writes this object to the given writer. * * This is used to defer content creation until the point when it is * streamed to the output destination. Oftentimes, content will be defined * but not necessarily created (as it may be the case with a Closure * definition.) In that case, the output is then 'deferred' to the point * when it is serialized to the writer. This class may be used whenever an * object should be responsible for creating its own textual representation, * but creating the entire output as a single String would be inefficient * (such as outputting a multi-gigabyte XML document.) * * throws: IOException if an error occurred while outputting data to the writer Parameters: `out` - the Writer to which this Writable should output its data. * Returns: the Writer that was passed *

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### public Node(Node parent, String name, Map attributes, Map attributeNamespaces, String namespaceURI)

      Parameters:
        `parent` - the parent node
        `name` - the name for the node
        `attributes` - the attributes for the node
        `attributeNamespaces` - the namespace mappings for attributes
        `namespaceURI` - the namespace URI if any

  - ### Method Detail

    - #### public void addChild(Object child)

      Adds an object as a new child to this Node.

      Parameters:
        `child` - the object to add as a child

    - #### protected void appendNode(Object newValue, GPathResult result)

      Appends literal content or lazy markup to this node body.

      Parameters:
        `newValue` - content to append
        `result` - current result passed to appended closures

    - #### public Map attributes()

      Returns a map of the attributes of this Node.

      Returns:
        a map of the attributes of this Node

    - #### public void build(GroovyObject builder, Map namespaceMap, Map<String, String> namespaceTagHints)

      Rebuilds this node through the streaming markup infrastructure.

      Parameters:
        `builder` - target builder
        `namespaceMap` - namespace declarations already in scope
        `namespaceTagHints` - preferred namespace prefixes

    - #### public Iterator childNodes()

      Returns an iterator over the child nodes of this Node.

      Returns:
        an iterator over the child nodes of this Node

    - #### public List children()

      Returns a list of the children of this Node.

      Returns:
        a list of the children of this Node

    - #### public List<String> localText()

      Returns the list of any direct String nodes of this node.

      Returns:
        the list of String values from this node
      Since:
        2.3.0

    - #### public String name()

      Returns the name of this Node.

      Returns:
        the name of this Node

    - #### public String namespaceURI()

      Returns the URI of the namespace of this Node.

      Returns:
        the namespace of this Node

    - #### public Node parent()

      Returns the parent of this Node.

      Returns:
        the parent of this Node

    - #### protected void replaceBody(Object newValue)

      Replaces the current body of this Node with the passed object.

      Parameters:
        `newValue` - the new body

    - #### public void replaceNode(Closure replacementClosure, GPathResult result)

      Queues a lazy replacement for this node.

      Parameters:
        `replacementClosure` - closure that emits replacement markup
        `result` - current result passed back to the closure

    - #### public String text()

      Returns a string containing the text of the children of this Node.

      Returns:
        a string containing the text of the children of this Node

    - #### public Writer writeTo(Writer out)

      * Writes this object to the given writer. *

      * This is used to defer content creation until the point when it is * streamed to the output destination. Oftentimes, content will be defined * but not necessarily created (as it may be the case with a Closure * definition.) In that case, the output is then 'deferred' to the point * when it is serialized to the writer. This class may be used whenever an * object should be responsible for creating its own textual representation, * but creating the entire output as a single String would be inefficient * (such as outputting a multi-gigabyte XML document.) * *

      throws:
        IOException if an error occurred while outputting data to the writer
      Parameters:
        `out` - the Writer to which this Writable should output its data. *
      Returns:
        the Writer that was passed *