Package: groovy.xml.slurpersupport

## [Java] Class GPathResult

- groovy.xml.slurpersupport.GPathResult

- All Implemented Interfaces and Traits:
    Buildable, Writable, Iterable

      public abstract class GPathResult
      extends GroovyObjectSupport
      implements Buildable, Writable, Iterable

  Base class for representing lazy evaluated GPath expressions.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected String` | `name` |
    `protected Map` | `namespaceMap` |
    `protected String` | `namespacePrefix` |
    `protected Map<String, String>` | `namespaceTagHints` |
    `protected GPathResult` | `parent` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `GPathResult(GPathResult parent, String name, String namespacePrefix, Map<String, String> namespaceTagHints)` Creates a new GPathResult named `name` with the parent `parent`, the namespacePrefix `namespacePrefix` and the namespaceTagHints specified in the `namespaceTagHints` Map.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected abstract void` | `appendNode(Object newValue)`
    `` | `public Iterator` | `breadthFirst()` Provides an Iterator over all the nodes of this GPathResult using a breadth-first traversal.
    `` | `public abstract Iterator` | `childNodes()` Returns an iterator over the child nodes of this GPathResult.
    `` | `public GPathResult` | `children()` Returns the children of this GPathResult as a GPathResult object.
    `` | `protected Iterator` | `createIterator(Object obj)`
    `` | `public GPathResult` | `declareNamespace(Map newNamespaceMapping)` Adds the specified map of prefix to namespace mappings to this GPathResult.
    `` | `public Iterator` | `depthFirst()` Provides an Iterator over all the nodes of this GPathResult using a depth-first traversal.
    `` | `public void` | `doCall(Object[] args)`
    `` | `public void` | `doCall(Object[] args)`
    `` | `public boolean` | `equals(Object obj)`
    `` | `public abstract GPathResult` | `find(Closure closure)` Returns the first child of this GPathResult matching the condition(s) specified in the passed closure.
    `` | `public abstract GPathResult` | `findAll(Closure closure)` Returns the children of this GPathResult matching the condition(s) specified in the passed closure.
    `` | `public Object` | `getAt(int index)` Supports the subscript operator for a GPathResult.
    `` | `public Object` | `getAt(IntRange range)` Supports the range subscript operator for a GPathResult.
    `` | `public Object` | `getAttribute(Object object, String attribute)`
    `` | `public Closure` | `getBody()` Creates a Closure representing the body of this GPathResult.
    `` | `public Object` | `getProperty(String property)` Returns the specified Property of this GPathResult.
    `` | `public boolean` | `hasNext()`
    `` | `public boolean` | `hasNext()`
    `` | `public boolean` | `hasNext()`
    `` | `public int` | `hashCode()`
    `` | `public boolean` | `isEmpty()` Returns true if the GPathResult is empty, i.e. if, and only if, `size()` is 0.
    `` | `public abstract Iterator` | `iterator()`
    `` | `public Object` | `leftShift(Object newValue)` Overloads the left shift operator to provide an easy way to lazily append Objects to this GPathResult.
    `` | `public List` | `list()` Creates a list of objects representing this GPathResult.
    `` | `public String` | `lookupNamespace(String prefix)` Returns the namespace mapped to the specified prefix.
    `` | `public String` | `name()` Returns the name of this GPathResult.
    `` | `public Object` | `next()`
    `` | `public Object` | `next()`
    `` | `public Object` | `next()`
    `` | `public abstract Iterator` | `nodeIterator()`
    `` | `public GPathResult` | `parent()` Returns as GPathResult with the parent nodes of the current GPathResult
    `` | `public abstract GPathResult` | `parents()` Returns the parents of this GPathResult as a `GPathResult`.
    `` | `public Object` | `plus(Object newValue)` Lazily adds the specified Object to this GPathResult.
    `` | `public Object` | `plus(Closure newValue)`
    `` | `public GPathResult` | `pop()` Returns the parent of this GPathResult.
    `` | `public void` | `putAt(int index, Object newValue)` A helper method to allow GPathResults to work with subscript operators
    `` | `public void` | `remove()`
    `` | `public void` | `remove()`
    `` | `public void` | `remove()`
    `` | `protected abstract void` | `replaceBody(Object newValue)`
    `` | `protected abstract void` | `replaceNode(Closure newValue)`
    `` | `public void` | `setAttribute(Object object, String attribute, Object newValue)`
    `` | `public void` | `setMetaClass(MetaClass metaClass)` Replaces the MetaClass of this GPathResult.
    `` | `public void` | `setProperty(String property, Object newValue)` Replaces the specified property of this GPathResult with a new value.
    `` | `public abstract int` | `size()` Returns the size of this GPathResult.
    `` | `public abstract String` | `text()` Returns the text of this GPathResult as a `String`.
    `` | `public BigDecimal` | `toBigDecimal()` Converts the text of this GPathResult to a BigDecimal object.
    `` | `public BigInteger` | `toBigInteger()` Converts the text of this GPathResult to a BigInteger object.
    `` | `public Boolean` | `toBoolean()` Converts the text of this GPathResult to a Boolean object.
    `` | `public Double` | `toDouble()` Converts the text of this GPathResult to a Double object.
    `` | `public Float` | `toFloat()` Converts the text of this GPathResult to a Float object.
    `` | `public Integer` | `toInteger()` Converts the text of this GPathResult to an Integer object.
    `` | `public Long` | `toLong()` Converts the text of this GPathResult to a Long object.
    `` | `public String` | `toString()` Returns the text of this GPathResult.
    `` | `public URI` | `toURI()` Converts the text of this GPathResult to a URI object.
    `` | `public URL` | `toURL()` Converts the text of this GPathResult to a URL object.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class GroovyObjectSupport` | `getMetaClass, setMetaClass`

- - ### Field Detail

    - #### protected final String name

    - #### protected final Map namespaceMap

    - #### protected final String namespacePrefix

    - #### protected final Map<String, String> namespaceTagHints

    - #### protected final GPathResult parent

  - ### Constructor Detail

    - #### public GPathResult(GPathResult parent, String name, String namespacePrefix, Map<String, String> namespaceTagHints)

      Creates a new GPathResult named `name` with the parent `parent`, the namespacePrefix `namespacePrefix` and the namespaceTagHints specified in the `namespaceTagHints` Map.

      Parameters:
        `parent` - the GPathResult prior to the application of the expression creating this GPathResult
        `name` - if the GPathResult corresponds to something with a name, e.g. a node
        `namespacePrefix` - the namespace prefix if any
        `namespaceTagHints` - the known tag to namespace mappings

  - ### Method Detail

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

    - #### public Iterator breadthFirst()

      Provides an Iterator over all the nodes of this GPathResult using a breadth-first traversal.

      Returns:
        the `Iterator` of (breadth-first) ordered GPathResults

    - #### public abstract Iterator childNodes()

      Returns an iterator over the child nodes of this GPathResult.

      Returns:
        an iterator over the child nodes of this GPathResult

    - #### public GPathResult children()

      Returns the children of this GPathResult as a GPathResult object.

      Returns:
        the children of this GPathResult

    - #### protected Iterator createIterator(Object obj)

    - #### public GPathResult declareNamespace(Map newNamespaceMapping)

      Adds the specified map of prefix to namespace mappings to this GPathResult. Already existing prefixes are overwritten.

      Parameters:
        `newNamespaceMapping` - the mappings to add
      Returns:
        `this`

    - #### public Iterator depthFirst()

      Provides an Iterator over all the nodes of this GPathResult using a depth-first traversal.

      Returns:
        the `Iterator` of (depth-first) ordered GPathResults

    - #### public void doCall(Object[] args)

    - #### @Override
      public boolean equals(Object obj)

    - #### public abstract 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 abstract 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 Object getAt(IntRange range)

      Supports the range subscript operator for a GPathResult.

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

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

           assert characterList.character[1..2].join(',') == 'Gromit,Shaun'

      Parameters:
        `range` - a Range indicating the items to get
      Returns:
        a new list based on range borders

    - #### @Override
      public Object getAttribute(Object object, String attribute)

    - #### public Closure getBody()

      Creates a Closure representing the body of this GPathResult.

      Returns:
        the body of this GPathResult, converted to a `Closure`

    - #### @Override
      public Object getProperty(String property)

      Returns the specified Property of this GPathResult.

      Realizes the follow shortcuts:

      - `'..'` for `parent()`
      - `'*'` for `children()`
      - `'**'` for `depthFirst()`
      - `'@'` for attribute access
      Parameters:
        `property` - the Property to fetch

    - #### @Override
      public boolean hasNext()

    - #### @Override
      public boolean hasNext()

    - #### @Override
      public boolean hasNext()

    - #### @Override
      public int hashCode()

    - #### public boolean isEmpty()

      Returns true if the GPathResult is empty, i.e. if, and only if, `size()` is 0.

      Returns:
        true if the GPathResult is empty

    - #### @Override
      public abstract Iterator iterator()

    - #### public Object leftShift(Object newValue)

      Overloads the left shift operator to provide an easy way to lazily append Objects to this GPathResult.

      Parameters:
        `newValue` - the Object to append
      Returns:
        `this`

    - #### public List list()

      Creates a list of objects representing this GPathResult.

      Returns:
        a list representing of this GPathResult

    - #### public String lookupNamespace(String prefix)

      Returns the namespace mapped to the specified prefix.

      Parameters:
        `prefix` - the prefix lookup
      Returns:
        the namespace of the prefix

    - #### public String name()

      Returns the name of this GPathResult.

      Returns:
        the name of this GPathResult

    - #### @Override
      public Object next()

    - #### @Override
      public Object next()

    - #### @Override
      public Object next()

    - #### public abstract Iterator nodeIterator()

    - #### public GPathResult parent()

      Returns as GPathResult with the parent nodes of the current GPathResult

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

    - #### public abstract GPathResult parents()

      Returns the parents of this GPathResult as a `GPathResult`. Warning: The subclasses of this package do not implement this method yet.

      Returns:
        the parents of this GPathResult

    - #### public Object plus(Object newValue)

      Lazily adds the specified Object to this GPathResult.

      Parameters:
        `newValue` - the Object to add
      Returns:
        `this`

    - #### public Object plus(Closure newValue)

    - #### public GPathResult pop()

      Returns the parent of this GPathResult. If this GPathResult has no parent the GPathResult itself is returned. This is no navigation in the XML tree. It is backtracking on the GPath expression chain. It is the behavior of parent() prior to 2.2.0. Backtracking on '..' actually goes down one level in the tree again. find() and findAll() are popped along with the level they have been applied to.

      Returns:
        the parent or `this`

    - #### public void putAt(int index, Object newValue)

      A helper method to allow GPathResults to work with subscript operators

      Parameters:
        `index` - an index
        `newValue` - the value to put at the given index

    - #### @Override
      public void remove()

    - #### @Override
      public void remove()

    - #### @Override
      public void remove()

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

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

    - #### @Override
      public void setAttribute(Object object, String attribute, Object newValue)

    - #### @Override
      public void setMetaClass(MetaClass metaClass)

      Replaces the MetaClass of this GPathResult.

      Parameters:
        `metaClass` - the new MetaClass

    - #### @Override
      public void setProperty(String property, Object newValue)

      Replaces the specified property of this GPathResult with a new value.

      Parameters:
        `property` - the property of this GPathResult to replace
        `newValue` - the new value of the property

    - #### public abstract int size()

      Returns the size of this GPathResult.

      Returns:
        the size of this GPathResult

    - #### public abstract String text()

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

      Returns:
        the text of this GPathResult

    - #### public BigDecimal toBigDecimal()

      Converts the text of this GPathResult to a BigDecimal object.

      Returns:
        the GPathResult, converted to a `BigDecimal`

    - #### public BigInteger toBigInteger()

      Converts the text of this GPathResult to a BigInteger object.

      Returns:
        the GPathResult, converted to a `BigInteger`

    - #### public Boolean toBoolean()

      Converts the text of this GPathResult to a Boolean object.

      Returns:
        the GPathResult, converted to a `Boolean`

    - #### public Double toDouble()

      Converts the text of this GPathResult to a Double object.

      Returns:
        the GPathResult, converted to a `Double`

    - #### public Float toFloat()

      Converts the text of this GPathResult to a Float object.

      Returns:
        the GPathResult, converted to a `Float`

    - #### public Integer toInteger()

      Converts the text of this GPathResult to an Integer object.

      Returns:
        the GPathResult, converted to a `Integer`

    - #### public Long toLong()

      Converts the text of this GPathResult to a Long object.

      Returns:
        the GPathResult, converted to a `Long`

    - #### @Override
      public String toString()

      Returns the text of this GPathResult.

      Returns:
        the GPathResult, converted to a `String`

    - #### public URI toURI()

      Converts the text of this GPathResult to a URI object.

      Returns:
        the GPathResult, converted to a `URI`

    - #### public URL toURL()

      Converts the text of this GPathResult to a URL object.

      Returns:
        the GPathResult, converted to a `URL`