Package: groovy.xml.slurpersupport

## [Java] Class NodeChild

- groovy.xml.slurpersupport.NodeChild

-     public class NodeChild
      extends GPathResult

  Lazy evaluated representation of a child node.

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class GPathResult` | `name, namespaceMap, namespacePrefix, namespaceTagHints, parent`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `NodeChild(Node node, GPathResult parent, String namespacePrefix, Map<String, String> namespaceTagHints)` Parameters: `node` - a node
    `NodeChild(Node node, GPathResult parent, Map<String, String> namespaceTagHints)` Parameters: `node` - a node

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected void` | `appendNode(Object newValue)` Lazily appends content to the nodes represented by this result. Parameters: `newValue` - content to append
    `` | `public Map` | `attributes()` Returns a map containing all attributes of the Node of this NodeChild.
    `` | `public void` | `build(GroovyObject builder)` Builds this object into the supplied builder. Parameters: `builder` - the target builder
    `` | `public Iterator` | `childNodes()` Returns an iterator over the child nodes of this GPathResult. Returns: an iterator over the child nodes of this GPathResult
    `` | `public GPathResult` | `find(Closure closure)` Returns the first child of this GPathResult matching the condition(s) specified in the passed closure. Parameters: `closure` - a closure to filters the children of this GPathResult Returns: the first child matching the closure
    `` | `public GPathResult` | `findAll(Closure closure)` Returns the children of this GPathResult matching the condition(s) specified in the passed closure. Parameters: `closure` - a closure to filters the children of this GPathResult Returns: the children matching the closure
    `` | `public Object` | `getAt(int index)` Supports the subscript operator for a GPathResult.
         import groovy.xml.slurpersupport.*
         import groovy.xml.XmlSlurper
         def text = """
         <characterList>
           <character/>
           <character>
             <name>Gromit</name>
           </character>
         </characterList>"""

         GPathResult characterList = new XmlSlurper().parseText(text)

         assert characterList.character[1].name == 'Gromit'
    Parameters: `index` - an index Returns: the value at the given index
    `` | `public Iterator` | `iterator()` {@inheritDoc}
    `` | `public List<String>` | `localText()` Returns the list of any direct String nodes of this NodeChild.
    `` | `public String` | `namespaceURI()` Returns the URI of the namespace of this NodeChild.
    `` | `public Iterator` | `nodeIterator()` Returns the raw node iterator backing this lazy result. Returns: the underlying node iterator
    `` | `public GPathResult` | `parent()` Returns as GPathResult with the parent nodes of the current GPathResult Returns: the parents GPathResult or `this` for the root
    `` | `public GPathResult` | `parents()` Throws a `GroovyRuntimeException`, because this method is not implemented yet.
    `` | `protected void` | `replaceBody(Object newValue)` Lazily replaces the body content represented by this result. Parameters: `newValue` - replacement body content
    `` | `protected void` | `replaceNode(Closure newValue)` Lazily replaces the nodes represented by this result. Parameters: `newValue` - closure generating the replacement content
    `` | `public int` | `size()` Returns the size of this GPathResult. Returns: the size of this GPathResult
    `` | `public String` | `text()` Returns the text of this GPathResult as a `String`. Returns: the text of this GPathResult
    `` | `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 GPathResult` | `appendNode, breadthFirst, childNodes, children, createIterator, declareNamespace, depthFirst, equals, find, findAll, getAt, getAt, getBody, getProperty, hashCode, isEmpty, iterator, leftShift, list, lookupNamespace, name, nodeIterator, parent, parents, plus, plus, pop, putAt, replaceBody, replaceNode, setMetaClass, setProperty, size, text, toBigDecimal, toBigInteger, toBoolean, toDouble, toFloat, toInteger, toLong, toString, toURI, toURL`
    `class GroovyObjectSupport` | `getMetaClass, setMetaClass`

- - ### Constructor Detail

    - #### public NodeChild(Node node, GPathResult parent, String namespacePrefix, Map<String, String> namespaceTagHints)

      Parameters:
        `node` - a node
        `parent` - the GPathResult prior to the application of the expression creating this GPathResult
        `namespacePrefix` - the namespace prefix if any
        `namespaceTagHints` - the known tag to namespace mappings

    - #### public NodeChild(Node node, GPathResult parent, Map<String, String> namespaceTagHints)

      Parameters:
        `node` - a node
        `parent` - the GPathResult prior to the application of the expression creating this GPathResult
        `namespaceTagHints` - the known tag to namespace mappings

  - ### Method Detail

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

      Lazily appends content to the nodes represented by this result.

      Parameters:
        `newValue` - content to append

    - #### public Map attributes()

      Returns a map containing all attributes of the Node of this NodeChild.

      Returns:
        a map containing all attributes

    - #### public void build(GroovyObject builder)

      Builds this object into the supplied builder.

      Parameters:
        `builder` - the target builder

    - #### public Iterator childNodes()

      Returns an iterator over the child nodes of this GPathResult.

      Returns:
        an iterator over the child nodes of this GPathResult

    - #### public GPathResult find(Closure closure)

      Returns the first child of this GPathResult matching the condition(s) specified in the passed closure.

      Parameters:
        `closure` - a closure to filters the children of this GPathResult
      Returns:
        the first child matching the closure

    - #### public GPathResult findAll(Closure closure)

      Returns the children of this GPathResult matching the condition(s) specified in the passed closure.

      Parameters:
        `closure` - a closure to filters the children of this GPathResult
      Returns:
        the children matching the closure

    - #### public Object getAt(int index)

      Supports the subscript operator for a GPathResult.

           import groovy.xml.slurpersupport.*
           import groovy.xml.XmlSlurper
           def text = """
           <characterList>
             <character/>
             <character>
               <name>Gromit</name>
             </character>
           </characterList>"""

           GPathResult characterList = new XmlSlurper().parseText(text)

           assert characterList.character[1].name == 'Gromit'

      Parameters:
        `index` - an index
      Returns:
        the value at the given index

    - #### public Iterator iterator()

      {@inheritDoc}

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

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

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

    - #### public String namespaceURI()

      Returns the URI of the namespace of this NodeChild.

      Returns:
        the namespace of this NodeChild

    - #### public Iterator nodeIterator()

      Returns the raw node iterator backing this lazy result.

      Returns:
        the underlying node iterator

    - #### public GPathResult parent()

      Returns as GPathResult with the parent nodes of the current GPathResult

      Returns:
        the parents GPathResult or `this` for the root

    - #### public GPathResult parents()

      Throws a `GroovyRuntimeException`, because this method is not implemented yet.

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

      Lazily replaces the body content represented by this result.

      Parameters:
        `newValue` - replacement body content

    - #### protected void replaceNode(Closure newValue)

      Lazily replaces the nodes represented by this result.

      Parameters:
        `newValue` - closure generating the replacement content

    - #### public int size()

      Returns the size of this GPathResult.

      Returns:
        the size of this GPathResult

    - #### public String text()

      Returns the text of this GPathResult as a `String`.

      Returns:
        the text of this GPathResult

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