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

Methods
`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.
`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 TransformerException

Cast result object to a number.

Overrides:
  `num` in class `XObject`
Returns:
  The result tree fragment as a number or NaN
Throws:
  `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 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:
  `TransformerException`