Class GPathResult

    • Field Detail

      • name

        protected final String name
      • namespacePrefix

        protected final String namespacePrefix
      • namespaceMap

        protected final Map namespaceMap
      • namespaceTagHints

        protected final Map<String,​String> namespaceTagHints
    • Constructor Detail

      • 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 Detail

      • 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
        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
        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
      • 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
      • getAt

        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
      • getAt

        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
      • 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
      • 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()