Class XNodeSet

All Implemented Interfaces:
Serializable, Cloneable, 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:
  • Constructor Details

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

    • getType

      public int getType()
      Tell that this is a CLASS_NODESET.
      Overrides:
      getType in class XObject
      Returns:
      type CLASS_NODESET
    • getTypeString

      public 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(ContentHandler ch) throws 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:
      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 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 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 TransformerException
      Cast result object to a nodelist.
      Overrides:
      nodeset in class XObject
      Returns:
      a NodeIterator.
      Throws:
      TransformerException
    • nodelist

      public NodeList nodelist() throws TransformerException
      Cast result object to a nodelist.
      Overrides:
      nodelist in class XObject
      Returns:
      a NodeList.
      Throws:
      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 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:
      TransformerException
    • lessThan

      public boolean lessThan(XObject obj2) throws 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:
      TransformerException
    • lessThanOrEqual

      public boolean lessThanOrEqual(XObject obj2) throws 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:
      TransformerException
    • greaterThan

      public boolean greaterThan(XObject obj2) throws 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:
      TransformerException
    • greaterThanOrEqual

      public boolean greaterThanOrEqual(XObject obj2) throws 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:
      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:
      TransformerException
    • notEquals

      public boolean notEquals(XObject obj2) throws 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:
      TransformerException