Methods Summary |
---|
public void | allowDetachToRelease(boolean allowRelease)Specify if it's OK for detach to release the iterator for reuse.
m_allowRelease = allowRelease;
|
public void | appendToFsb(com.sun.org.apache.xml.internal.utils.FastStringBuffer fsb)Cast result object to a string.
XString xstring = (XString)xstr();
xstring.appendToFsb(fsb);
|
public com.sun.org.apache.xml.internal.dtm.DTMIterator | asNodeIterator()Cast result object to a DTMIterator.
dml - modified to return an RTFIterator for
benefit of EXSLT object-type function in
{@link com.sun.org.apache.xalan.internal.lib.ExsltCommon}.
return new RTFIterator(m_dtmRoot, m_DTMXRTreeFrag.getXPathContext().getDTMManager());
|
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.
return true;
|
public org.w3c.dom.NodeList | convertToNodeset()Cast result object to a nodelist. (special function).
if (m_obj instanceof NodeList)
return (NodeList) m_obj;
else
return new com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList(asNodeIterator());
|
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.
if(m_allowRelease){
m_DTMXRTreeFrag.destruct();
m_obj = null;
}
|
public boolean | equals(com.sun.org.apache.xpath.internal.objects.XObject obj2)Tell if two objects are functionally equal.
try
{
if (XObject.CLASS_NODESET == obj2.getType())
{
// In order to handle the 'all' semantics of
// nodeset comparisons, we always call the
// nodeset function.
return obj2.equals(this);
}
else if (XObject.CLASS_BOOLEAN == obj2.getType())
{
return bool() == obj2.bool();
}
else if (XObject.CLASS_NUMBER == obj2.getType())
{
return num() == obj2.num();
}
else if (XObject.CLASS_NODESET == obj2.getType())
{
return xstr().equals(obj2.xstr());
}
else if (XObject.CLASS_STRING == obj2.getType())
{
return xstr().equals(obj2.xstr());
}
else if (XObject.CLASS_RTREEFRAG == obj2.getType())
{
// Probably not so good. Think about this.
return xstr().equals(obj2.xstr());
}
else
{
return super.equals(obj2);
}
}
catch(javax.xml.transform.TransformerException te)
{
throw new com.sun.org.apache.xml.internal.utils.WrappedRuntimeException(te);
}
|
public int | getType()Tell what kind of class this is.
return CLASS_RTREEFRAG;
|
public java.lang.String | getTypeString()Given a request type, return the equivalent string.
For diagnostic purposes.
return "#RTREEFRAG";
|
private final void | initDTM(int root, com.sun.org.apache.xpath.internal.XPathContext xctxt)
m_dtmRoot = root;
final DTM dtm = xctxt.getDTM(root);
if(dtm != null){
m_DTMXRTreeFrag = xctxt.getDTMXRTreeFrag(xctxt.getDTMIdentity(dtm));
}
|
public double | num()Cast result object to a number.
XMLString s = xstr();
return s.toDouble();
|
public java.lang.Object | object()Return a java object that's closest to the representation
that should be handed to an extension.
if (m_DTMXRTreeFrag.getXPathContext() != null)
return new com.sun.org.apache.xml.internal.dtm.ref.DTMNodeIterator((DTMIterator)(new com.sun.org.apache.xpath.internal.NodeSetDTM(m_dtmRoot, m_DTMXRTreeFrag.getXPathContext().getDTMManager())));
else
return super.object();
|
public int | rtf()Cast result object to a result tree fragment.
return m_dtmRoot;
|
public java.lang.String | str()Cast result object to a string.
String str = m_DTMXRTreeFrag.getDTM().getStringValue(m_dtmRoot).toString();
return (null == str) ? "" : str;
|
public com.sun.org.apache.xml.internal.utils.XMLString | xstr()Cast result object to an XMLString.
if(null == m_xmlStr)
m_xmlStr = m_DTMXRTreeFrag.getDTM().getStringValue(m_dtmRoot);
return m_xmlStr;
|