Package: groovy.xml.slurpersupport

## [Java] Class Attribute

- groovy.xml.slurpersupport.Attribute

-     public class Attribute
      extends GPathResult

  Lazy evaluated representation of a node attribute.

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

  - ### Constructor Summary

    Constructors
    Constructor and description
    `Attribute(String name, String value, GPathResult parent, String namespacePrefix, Map<String, String> namespaceTagHints)` Parameters: `name` - of the attribute

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected void` | `appendNode(Object newValue)` NOP, because a node can not be appended to an attribute.
    `` | `public void` | `build(GroovyObject builder)` Builds this object into the supplied builder. Parameters: `builder` - the target builder
    `` | `public Iterator` | `childNodes()` Throws a `GroovyRuntimeException`, because an attribute can have no children.
    `` | `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 Iterator` | `iterator()` {@inheritDoc}
    `` | `public String` | `name()` Returns this attribute name without the leading `@` used in GPath selectors.
    `` | `public String` | `namespaceURI()` Returns the URI of the namespace of this Attribute.
    `` | `public Iterator` | `nodeIterator()` Returns the raw node iterator backing this lazy result. Returns: the underlying node iterator
    `` | `public GPathResult` | `parents()` Throws a `GroovyRuntimeException`, because this method is not implemented yet.
    `` | `protected void` | `replaceBody(Object newValue)` NOP, because an attribute does not have a Body.
    `` | `protected void` | `replaceNode(Closure newValue)` NOP, because an attribute does not have any Node to replace.
    `` | `public int` | `size()` Returns the size of this Attribute, which is always `1`.
    `` | `public String` | `text()` Returns the value of this Attribute.
    `` | `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 Attribute(String name, String value, GPathResult parent, String namespacePrefix, Map<String, String> namespaceTagHints)

      Parameters:
        `name` - of the attribute
        `value` - of the attribute
        `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

  - ### Method Detail

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

      NOP, because a node can not be appended to an attribute.

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

      Builds this object into the supplied builder.

      Parameters:
        `builder` - the target builder

    - #### public Iterator childNodes()

      Throws a `GroovyRuntimeException`, because an attribute can have no children.

    - #### 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 Iterator iterator()

      {@inheritDoc}

    - #### public String name()

      Returns this attribute name without the leading `@` used in GPath selectors.

    - #### public String namespaceURI()

      Returns the URI of the namespace of this Attribute.

      Returns:
        the namespace of this Attribute

    - #### public Iterator nodeIterator()

      Returns the raw node iterator backing this lazy result.

      Returns:
        the underlying node iterator

    - #### public GPathResult parents()

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

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

      NOP, because an attribute does not have a Body.

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

      NOP, because an attribute does not have any Node to replace.

    - #### public int size()

      Returns the size of this Attribute, which is always `1`.

      Returns:
        `1`

    - #### public String text()

      Returns the value of this Attribute.

      Returns:
        the value of this Attribute

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