org.apache.xpath.objects
Class XRTreeFrag

java.lang.Object
  extended by org.apache.xpath.Expression
      extended by org.apache.xpath.objects.XObject
          extended by 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

Field Summary
protected  boolean m_allowRelease
           
private  int m_dtmRoot
           
private  DTMXRTreeFrag m_DTMXRTreeFrag
           
private  XMLString m_xmlStr
           
(package private) static long serialVersionUID
           
 
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
 
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 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.
private  void initDTM(int root, XPathContext xctxt)
           
 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, error, error, execute, fixupVariables, getFresh, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, numWithSideEffects, reset, rtf, rtree, rtree, setObject, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_DTMXRTreeFrag

private DTMXRTreeFrag m_DTMXRTreeFrag

m_dtmRoot

private int m_dtmRoot

m_allowRelease

protected 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

initDTM

private final void initDTM(int root,
                           XPathContext xctxt)

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