Package groovy.util.slurpersupport

# Class GPathResult

java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.util.slurpersupport.GPathResult

All Implemented Interfaces:
  `Buildable`, `GroovyObject`, `Writable`, `Iterable`

Direct Known Subclasses:
  `Attribute`, `NoChildren`, `NodeChild`, `NodeChildren`

public abstract class GPathResult extends GroovyObjectSupport implements Writable, Buildable, Iterable
Base class for representing lazy evaluated GPath expressions.

Author:
  John Wilson

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final String`
`name`
`protected final Map`
`namespaceMap`
`protected final String`
`namespacePrefix`
`protected final Map<String,String>`
`namespaceTagHints`
`protected final GPathResult`
`parent`

## Constructor Summary

Constructors
Constructor
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.

## Method Summary

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

### Methods inherited from class groovy.lang.GroovyObjectSupport

`getMetaClass, invokeMethod`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface groovy.lang.Buildable

`build`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Methods inherited from interface groovy.lang.Writable

`writeTo`

## Field Details

### parent

protected final GPathResult parent

### name

protected final String name

### namespacePrefix

protected final String namespacePrefix

### namespaceMap

protected final Map namespaceMap

### namespaceTagHints

protected final Map<String,String> namespaceTagHints

## Constructor Details

### GPathResult

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 Details

### setMetaClass

public void setMetaClass(MetaClass metaClass)
Replaces the MetaClass of this GPathResult.

Specified by:
  `setMetaClass` in interface `GroovyObject`
Overrides:
  `setMetaClass` in class `GroovyObjectSupport`
Parameters:
  `metaClass` - the new MetaClass

### getProperty

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

Specified by:
  `getProperty` in interface `GroovyObject`
Overrides:
  `getProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - the Property to fetch
Returns:
  the given property

### setProperty

public void setProperty(String property, Object newValue)
Replaces the specified property of this GPathResult with a new value.

Specified by:
  `setProperty` in interface `GroovyObject`
Overrides:
  `setProperty` in class `GroovyObjectSupport`
Parameters:
  `property` - the property of this GPathResult to replace
  `newValue` - the new value of the property

### leftShift

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`

### plus

public Object plus(Object newValue)
Lazily adds the specified Object to this GPathResult.

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

### replaceNode

protected abstract void replaceNode(Closure newValue)

### replaceBody

protected abstract void replaceBody(Object newValue)

### appendNode

protected abstract void appendNode(Object newValue)

### name

public String name()
Returns the name of this GPathResult.

Returns:
  the name of this GPathResult

### pop

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`

### parent

public GPathResult parent()
Returns as GPathResult with the parent nodes of the current GPathResult

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

### children

public GPathResult children()
Returns the children of this GPathResult as a GPathResult object.

Returns:
  the children of this GPathResult

### lookupNamespace

public String lookupNamespace(String prefix)
Returns the namespace mapped to the specified prefix.

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

### toString

public String toString()
Returns the text of this GPathResult.

Overrides:
  `toString` in class `Object`
Returns:
  the GPathResult, converted to a `String`

### toInteger

public Integer toInteger()
Converts the text of this GPathResult to a Integer object.

Returns:
  the GPathResult, converted to a `Integer`

### toLong

public Long toLong()
Converts the text of this GPathResult to a Long object.

Returns:
  the GPathResult, converted to a `Long`

### toFloat

public Float toFloat()
Converts the text of this GPathResult to a Float object.

Returns:
  the GPathResult, converted to a `Float`

### toDouble

public Double toDouble()
Converts the text of this GPathResult to a Double object.

Returns:
  the GPathResult, converted to a `Double`

### toBigDecimal

public BigDecimal toBigDecimal()
Converts the text of this GPathResult to a BigDecimal object.

Returns:
  the GPathResult, converted to a `BigDecimal`

### toBigInteger

public BigInteger toBigInteger()
Converts the text of this GPathResult to a BigInteger object.

Returns:
  the GPathResult, converted to a `BigInteger`

### toURL

public URL toURL() throws MalformedURLException
Converts the text of this GPathResult to a URL object.

Returns:
  the GPathResult, converted to a `URL`
Throws:
  `MalformedURLException`

### toURI

public URI toURI() throws URISyntaxException
Converts the text of this GPathResult to a URI object.

Returns:
  the GPathResult, converted to a `URI`
Throws:
  `URISyntaxException`

### toBoolean

public Boolean toBoolean()
Converts the text of this GPathResult to a Boolean object.

Returns:
  the GPathResult, converted to a `Boolean`

### declareNamespace

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`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### getAt

public Object getAt(int index)
Supports the subscript operator for a GPathResult.

     import groovy.util.slurpersupport.*
     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

### getAt

public Object getAt(IntRange range)
Supports the range subscript operator for a GPathResult.

     import groovy.util.slurpersupport.*
     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

### putAt

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

### depthFirst

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

### breadthFirst

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

### list

public List list()
Creates a list of objects representing this GPathResult.

Returns:
  a list representing of this GPathResult

### isEmpty

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

### getBody

public Closure getBody()
Creates a Closure representing the body of this GPathResult.

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

### size

public abstract int size()
Returns the size of this GPathResult.

Returns:
  the size of this GPathResult

### text

public abstract String text()
Returns the text of this GPathResult as a `String`.

Returns:
  the text of this GPathResult

### parents

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

### childNodes

public abstract Iterator childNodes()
Returns an iterator over the child nodes of this GPathResult.

Returns:
  an iterator over the child nodes of this GPathResult

### iterator

public abstract Iterator iterator()

Specified by:
  `iterator` in interface `Iterable`

### find

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

### findAll

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

### nodeIterator

public abstract Iterator nodeIterator()