org.apache.xpath.objects

## Class XNodeSet

- java.lang.Object
- - org.apache.xpath.Expression
  - - org.apache.xpath.objects.XObject
    - - org.apache.xpath.axes.NodeSequence
      - - org.apache.xpath.objects.XNodeSet

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, DTMIterator, PathComponent, ExpressionNode, XPathVisitable
  Direct Known Subclasses:
    XNodeSetForDOM, XNull

      public class XNodeSet
      extends NodeSequence

  This class represents an XPath nodeset object, and is capable of converting the nodeset to other types, such as a string.
  See Also:
    Serialized Form
  Usage:

- - ### Field Summary

    - ### Fields inherited from class org.apache.xpath.objects.XObject

      `CLASS_BOOLEAN, CLASS_NODESET, CLASS_NULL, CLASS_NUMBER, CLASS_RTREEFRAG, CLASS_STRING, CLASS_UNKNOWN, CLASS_UNRESOLVEDVARIABLE`

    - ### Fields inherited from interface org.apache.xml.dtm.DTMIterator

      `FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XNodeSet(DTMIterator val)` Construct a XNodeSet object.
    `XNodeSet(DTMManager dtmMgr)` Construct an empty XNodeSet object.
    `XNodeSet(int n, DTMManager dtmMgr)` Construct a XNodeSet object for one node.
    `XNodeSet(XNodeSet val)` Construct a XNodeSet object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendToFsb(FastStringBuffer fsb)` Cast result object to a string.
    `boolean` | `bool()` Cast result object to a boolean.
    `boolean` | `boolWithSideEffects()` Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.
    `boolean` | `compare(XObject obj2, org.apache.xpath.objects.Comparator comparator)` Tell if one object is less than the other.
    `void` | `dispatchCharactersEvents(org.xml.sax.ContentHandler ch)` Directly call the characters method on the passed ContentHandler for the string-value.
    `boolean` | `equals(XObject obj2)` Tell if two objects are functionally equal.
    `XObject` | `getFresh()` Get a fresh copy of the object.
    `double` | `getNumberFromNode(int n)` Get numeric value of the string conversion from a single node.
    `XMLString` | `getStringFromNode(int n)` Get the string conversion from a single node.
    `int` | `getType()` Tell that this is a CLASS_NODESET.
    `java.lang.String` | `getTypeString()` Given a request type, return the equivalent string.
    `boolean` | `greaterThan(XObject obj2)` Tell if one object is less than the other.
    `boolean` | `greaterThanOrEqual(XObject obj2)` Tell if one object is less than the other.
    `DTMIterator` | `iter()` Cast result object to a nodelist.
    `DTMIterator` | `iterRaw()` Return the iterator without cloning, etc.
    `boolean` | `lessThan(XObject obj2)` Tell if one object is less than the other.
    `boolean` | `lessThanOrEqual(XObject obj2)` Tell if one object is less than or equal to the other.
    `NodeSetDTM` | `mutableNodeset()` Cast result object to a mutableNodeset.
    `org.w3c.dom.NodeList` | `nodelist()` Cast result object to a nodelist.
    `org.w3c.dom.traversal.NodeIterator` | `nodeset()` Cast result object to a nodelist.
    `boolean` | `notEquals(XObject obj2)` Tell if two objects are functionally not equal.
    `double` | `num()` Cast result object to a number.
    `double` | `numWithSideEffects()` Cast result object to a number, but allow side effects, such as the incrementing of an iterator.
    `java.lang.Object` | `object()` Return a java object that's closest to the representation that should be handed to an extension.
    `void` | `release(DTMIterator iter)`
    `java.lang.String` | `str()` Cast result object to a string.
    `XMLString` | `xstr()` Cast result object to an XMLString.

    - ### Methods inherited from class org.apache.xpath.axes.NodeSequence

      `allowDetachToRelease, clone, cloneWithReset, detach, fixupVariables, getAnalysisBits, getAxis, getContainedIter, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getLength, getRoot, getWhatToShow, hasCache, isDocOrdered, isFresh, isMutable, item, nextNode, previousNode, reset, runTo, setCurrentPos, setItem, setIter, setRoot, setShouldCacheNodes`

    - ### Methods inherited from class org.apache.xpath.objects.XObject

      `callVisitors, castToType, create, create, deepEquals, destruct, execute, rtf, rtf, rtree, rtree, toString`

    - ### Methods inherited from class org.apache.xpath.Expression

      `asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isStableNumber, num, warn, xstr`

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

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### XNodeSet

          public XNodeSet(DTMIterator val)

      Construct a XNodeSet object.
      Parameters:
        `val` - Value of the XNodeSet object

    - #### XNodeSet

          public XNodeSet(XNodeSet val)

      Construct a XNodeSet object.
      Parameters:
        `val` - Value of the XNodeSet object

    - #### XNodeSet

          public XNodeSet(DTMManager dtmMgr)

      Construct an empty XNodeSet object. This is used to create a mutable nodeset to which random nodes may be added.

    - #### XNodeSet

          public XNodeSet(int n,
                          DTMManager dtmMgr)

      Construct a XNodeSet object for one node.
      Parameters:
        `n` - Node to add to the new XNodeSet object

  - ### Method Detail

    - #### getType

          public int getType()

      Tell that this is a CLASS_NODESET.
      Overrides:
        `getType` in class `XObject`
      Returns:
        type CLASS_NODESET

    - #### getTypeString

          public java.lang.String getTypeString()

      Given a request type, return the equivalent string. For diagnostic purposes.
      Overrides:
        `getTypeString` in class `XObject`
      Returns:
        type string "#NODESET"

    - #### getNumberFromNode

          public double getNumberFromNode(int n)

      Get numeric value of the string conversion from a single node.
      Parameters:
        `n` - Node to convert
      Returns:
        numeric value of the string conversion from a single node.

    - #### num

          public double num()

      Cast result object to a number.
      Overrides:
        `num` in class `XObject`
      Returns:
        numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found

    - #### numWithSideEffects

          public double numWithSideEffects()

      Cast result object to a number, but allow side effects, such as the incrementing of an iterator.
      Overrides:
        `numWithSideEffects` in class `XObject`
      Returns:
        numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found

    - #### bool

          public boolean bool()

      Cast result object to a boolean.
      Overrides:
        `bool` in class `XObject`
      Returns:
        True if there is a next node in the nodeset

    - #### boolWithSideEffects

          public boolean boolWithSideEffects()

      Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.
      Overrides:
        `boolWithSideEffects` in class `XObject`
      Returns:
        True if there is a next node in the nodeset

    - #### getStringFromNode

          public XMLString getStringFromNode(int n)

      Get the string conversion from a single node.
      Parameters:
        `n` - Node to convert
      Returns:
        the string conversion from a single node.

    - #### dispatchCharactersEvents

          public void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
                                        throws org.xml.sax.SAXException

      Directly call the characters method on the passed ContentHandler for the string-value. Multiple calls to the ContentHandler's characters methods may well occur for a single call to this method.
      Overrides:
        `dispatchCharactersEvents` in class `XObject`
      Parameters:
        `ch` - A non-null reference to a ContentHandler.
      Throws:
        `org.xml.sax.SAXException`

    - #### xstr

          public XMLString xstr()

      Cast result object to an XMLString.
      Overrides:
        `xstr` in class `XObject`
      Returns:
        The document fragment node data or the empty string.

    - #### appendToFsb

          public void appendToFsb(FastStringBuffer fsb)

      Cast result object to a string.
      Overrides:
        `appendToFsb` in class `XObject`

    - #### str

          public java.lang.String str()

      Cast result object to a string.
      Overrides:
        `str` in class `XObject`
      Returns:
        the string conversion from the next node in the nodeset or "" if there is no next node

    - #### object

          public java.lang.Object object()

      Return a java object that's closest to the representation that should be handed to an extension.
      Overrides:
        `object` in class `XObject`
      Returns:
        The object that this class wraps

    - #### nodeset

          public org.w3c.dom.traversal.NodeIterator nodeset()
                                                     throws javax.xml.transform.TransformerException

      Cast result object to a nodelist.
      Overrides:
        `nodeset` in class `XObject`
      Returns:
        a NodeIterator.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### nodelist

          public org.w3c.dom.NodeList nodelist()
                                        throws javax.xml.transform.TransformerException

      Cast result object to a nodelist.
      Overrides:
        `nodelist` in class `XObject`
      Returns:
        a NodeList.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### iterRaw

          public DTMIterator iterRaw()

      Return the iterator without cloning, etc.

    - #### release

          public void release(DTMIterator iter)

    - #### iter

          public DTMIterator iter()

      Cast result object to a nodelist.
      Overrides:
        `iter` in class `XObject`
      Returns:
        The nodeset as a nodelist

    - #### getFresh

          public XObject getFresh()

      Get a fresh copy of the object. For use with variables.
      Overrides:
        `getFresh` in class `XObject`
      Returns:
        A fresh nodelist.

    - #### mutableNodeset

          public NodeSetDTM mutableNodeset()

      Cast result object to a mutableNodeset.
      Overrides:
        `mutableNodeset` in class `XObject`
      Returns:
        The nodeset as a mutableNodeset

    - #### compare

          public boolean compare(XObject obj2,
                                 org.apache.xpath.objects.Comparator comparator)
                          throws javax.xml.transform.TransformerException

      Tell if one object is less than the other.
      Parameters:
        `obj2` - Object to compare this nodeset to
        `comparator` - Comparator to use
      Returns:
        See the comments below for each object type comparison
      Throws:
        `javax.xml.transform.TransformerException`

    - #### lessThan

          public boolean lessThan(XObject obj2)
                           throws javax.xml.transform.TransformerException

      Tell if one object is less than the other.
      Overrides:
        `lessThan` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

    - #### lessThanOrEqual

          public boolean lessThanOrEqual(XObject obj2)
                                  throws javax.xml.transform.TransformerException

      Tell if one object is less than or equal to the other.
      Overrides:
        `lessThanOrEqual` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

    - #### greaterThan

          public boolean greaterThan(XObject obj2)
                              throws javax.xml.transform.TransformerException

      Tell if one object is less than the other.
      Overrides:
        `greaterThan` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

    - #### greaterThanOrEqual

          public boolean greaterThanOrEqual(XObject obj2)
                                     throws javax.xml.transform.TransformerException

      Tell if one object is less than the other.
      Overrides:
        `greaterThanOrEqual` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

    - #### equals

          public boolean equals(XObject obj2)

      Tell if two objects are functionally equal.
      Overrides:
        `equals` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

    - #### notEquals

          public boolean notEquals(XObject obj2)
                            throws javax.xml.transform.TransformerException

      Tell if two objects are functionally not equal.
      Overrides:
        `notEquals` in class `XObject`
      Parameters:
        `obj2` - object to compare this nodeset to
      Returns:
        see this.compare(...)
      Throws:
        `javax.xml.transform.TransformerException`

Copyright © 2023 Apache XML Project. All Rights Reserved.