org.apache.xpath.objects
Class XRTreeFrag

java.lang.Object
  extended byorg.apache.xpath.Expression
      extended byorg.apache.xpath.objects.XObject
          extended byorg.apache.xpath.objects.XRTreeFrag
All Implemented Interfaces:
Cloneable, ExpressionNode, Serializable, javax.xml.transform.SourceLocator, XPathVisitable
Direct Known Subclasses:
XRTreeFragSelectWrapper

public class XRTreeFrag
extends XObject
implements 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

Field Summary
(package private)  boolean m_allowRelease
           
(package private)  DTM m_dtm
           
(package private)  int m_dtmRoot
           
(package private)  XPathContext m_xctxt
           
private  XMLString m_xmlStr
           
 
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, m_obj
 
Fields inherited from class org.apache.xpath.Expression
 
Constructor Summary
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
 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 destruct()
          Forces the object to release it's resources.
 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.
protected  void finalize()
          Release any resources this object may have by calling destruct().
 int getType()
          Tell what kind of class this is.
 String getTypeString()
          Given a request type, return the equivalent string.
 double num()
          Cast result object to a number.
 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.
 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, dispatchCharactersEvents, error, error, 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, isSameClass, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_dtm

DTM m_dtm

m_dtmRoot

int m_dtmRoot

m_xctxt

XPathContext m_xctxt

m_allowRelease

boolean m_allowRelease

m_xmlStr

private XMLString m_xmlStr
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 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

finalize

protected void finalize()
                 throws Throwable
Release any resources this object may have by calling destruct(). %ISSUE% This release will occur asynchronously. Resources it manipulates MUST be thread-safe!

Overrides:
finalize in class Object
Throws:
Throwable

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

destruct

public void destruct()
Forces the object to release it's resources. This is more harsh than detach(). You can call destruct as many times as you want.

Overrides:
destruct 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 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
Returns:
The string this wraps or the empty string if null

str

public 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