org.apache.xpath.objects

## Class XRTreeFrag

- java.lang.Object
- - org.apache.xpath.Expression
  - - org.apache.xpath.objects.XObject
    - - org.apache.xpath.objects.XRTreeFrag

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

      public class XRTreeFrag
      extends XObject
      implements java.lang.Cloneable

  This class represents an XPath result tree fragment object, and is capable of converting the RTF 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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XRTreeFrag(Expression expr)` Create an XRTreeFrag Object.
    `XRTreeFrag(int root, XPathContext xctxt)` Create an XRTreeFrag Object.
    `XRTreeFrag(int root, XPathContext xctxt, ExpressionNode parent)` Create an XRTreeFrag Object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `allowDetachToRelease(boolean allowRelease)` Specify if it's OK for detach to release the iterator for reuse.
    `void` | `appendToFsb(FastStringBuffer fsb)` Cast result object to a string.
    `DTMIterator` | `asNodeIterator()` Cast result object to a DTMIterator.
    `boolean` | `bool()` Cast result object to a boolean.
    `org.w3c.dom.NodeList` | `convertToNodeset()` Cast result object to a nodelist.
    `void` | `detach()` Detaches the `DTMIterator` from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
    `boolean` | `equals(XObject obj2)` Tell if two objects are functionally equal.
    `int` | `getType()` Tell what kind of class this is.
    `java.lang.String` | `getTypeString()` Given a request type, return the equivalent string.
    `double` | `num()` Cast result object to a number.
    `java.lang.Object` | `object()` Return a java object that's closest to the representation that should be handed to an extension.
    `int` | `rtf()` Cast result object to a result tree fragment.
    `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.objects.XObject

      `boolWithSideEffects, callVisitors, castToType, create, create, deepEquals, destruct, dispatchCharactersEvents, execute, fixupVariables, getFresh, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, numWithSideEffects, reset, 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

    - #### XRTreeFrag

          public XRTreeFrag(int root,
                            XPathContext xctxt,
                            ExpressionNode parent)

      Create an XRTreeFrag Object.

    - #### XRTreeFrag

          public XRTreeFrag(int root,
                            XPathContext xctxt)

      Create an XRTreeFrag Object.

    - #### XRTreeFrag

          public XRTreeFrag(Expression expr)

      Create an XRTreeFrag Object.

  - ### Method Detail

    - #### 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

    - #### allowDetachToRelease

          public void allowDetachToRelease(boolean allowRelease)

      Specify if it's OK for detach to release the iterator for reuse.
      Overrides:
        `allowDetachToRelease` in class `XObject`
      Parameters:
        `allowRelease` - true if it is OK for detach to release this iterator for pooling.

    - #### detach

          public void detach()

      Detaches the `DTMIterator` from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state. After `detach` has been invoked, calls to `nextNode` or `previousNode` will raise a runtime exception. In general, detach should only be called once on the object.
      Overrides:
        `detach` in class `XObject`

    - #### getType

          public int getType()

      Tell what kind of class this is.
      Overrides:
        `getType` in class `XObject`
      Returns:
        type CLASS_RTREEFRAG

    - #### 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 "#RTREEFRAG"

    - #### num

          public double num()
                     throws javax.xml.transform.TransformerException

      Cast result object to a number.
      Overrides:
        `num` in class `XObject`
      Returns:
        The result tree fragment as a number or NaN
      Throws:
        `javax.xml.transform.TransformerException`

    - #### bool

          public boolean bool()

      Cast result object to a boolean. This always returns true for a RTreeFrag because it is treated like a node-set with a single root node.
      Overrides:
        `bool` in class `XObject`
      Returns:
        true

    - #### 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 document fragment node data or the empty string.

    - #### rtf

          public int rtf()

      Cast result object to a result tree fragment.
      Overrides:
        `rtf` in class `XObject`
      Returns:
        The document fragment this wraps

    - #### asNodeIterator

          public DTMIterator asNodeIterator()

      Cast result object to a DTMIterator. dml - modified to return an RTFIterator for benefit of EXSLT object-type function in `ExsltCommon`.
      Returns:
        The document fragment as a DTMIterator

    - #### convertToNodeset

          public org.w3c.dom.NodeList convertToNodeset()

      Cast result object to a nodelist. (special function).
      Returns:
        The document fragment as a nodelist

    - #### equals

          public boolean equals(XObject obj2)

      Tell if two objects are functionally equal.
      Overrides:
        `equals` in class `XObject`
      Parameters:
        `obj2` - Object to compare this to
      Returns:
        True if the two objects are equal
      Throws:
        `javax.xml.transform.TransformerException`

Copyright © 2023 Apache XML Project. All Rights Reserved.