org.apache.xpath.objects
Class XNodeSet

java.lang.Object
  |
  +--org.apache.xpath.Expression
        |
        +--org.apache.xpath.objects.XObject
              |
              +--org.apache.xpath.objects.XNodeSet
Direct Known Subclasses:
XNodeSetForDOM

public class XNodeSet
extends XObject

This class represents an XPath nodeset object, and is capable of converting the nodeset to other types, such as a string.

See Also:
Serialized Form

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
XNodeSet(DTMIterator val)
          Construct a XNodeSet object.
XNodeSet(DTMManager dtmMgr)
          Construct an empty XNodeSet object.
XNodeSet(int n, DTMManager dtmMgr)
          Construct a XNodeSet object for one node.
 
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.
 boolean bool()
          Cast result object to a boolean.
 boolean boolWithSideEffects()
          Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.
 boolean compare(XObject obj2, org.apache.xpath.objects.Comparator comparator)
          Tell if one object is less than the other.
 void detach()
          Detaches the DTMIterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
 void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
          Directly call the characters method on the passed ContentHandler for the string-value.
 boolean equals(XObject obj2)
          Tell if two objects are functionally equal.
 DTMManager getDTMMgr()
           
 double getNumberFromNode(int n)
          Get numeric value of the string conversion from a single node.
 XMLString getStringFromNode(int n)
          Get the string conversion from a single node.
 int getType()
          Tell that this is a CLASS_NODESET.
 java.lang.String getTypeString()
          Given a request type, return the equivalent string.
 boolean greaterThan(XObject obj2)
          Tell if one object is less than the other.
 boolean greaterThanOrEqual(XObject obj2)
          Tell if one object is less than the other.
 DTMIterator iter()
          Cast result object to a nodelist.
 DTMIterator iterRaw()
          Return the iterator without cloning, etc.
 boolean lessThan(XObject obj2)
          Tell if one object is less than the other.
 boolean lessThanOrEqual(XObject obj2)
          Tell if one object is less than or equal to the other.
 NodeSetDTM mutableNodeset()
          Cast result object to a mutableNodeset.
 org.w3c.dom.NodeList nodelist()
          Cast result object to a nodelist.
 org.w3c.dom.traversal.NodeIterator nodeset()
          Cast result object to a nodelist.
 boolean notEquals(XObject obj2)
          Tell if two objects are functionally not equal.
 double num()
          Cast result object to a number.
 double numWithSideEffects()
          Cast result object to a number, but allow side effects, such as the incrementing of an iterator.
 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
castToType, create, create, destruct, execute, fixupVariables, object, rtf, rtf, rtree, rtree, toString
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asNode, assertion, bool, canTraverseOutsideSubtree, error, execute, execute, executeCharsToContentHandler, isNodesetExpr, isStableNumber, num, setSourceLocator, warn, xstr
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XNodeSet

public XNodeSet(DTMIterator val)
Construct a XNodeSet object.
Parameters:
val - Value of the XNodeSet object

XNodeSet

public XNodeSet(DTMManager dtmMgr)
Construct an empty XNodeSet object. This is used to create a mutable nodeset to which random nodes may be added.

XNodeSet

public XNodeSet(int n,
                DTMManager dtmMgr)
Construct a XNodeSet object for one node.
Parameters:
n - Node to add to the new XNodeSet object
Method Detail

getDTMMgr

public DTMManager getDTMMgr()

getType

public int getType()
Tell that this is a CLASS_NODESET.
Returns:
type CLASS_NODESET
Overrides:
getType in class XObject

getTypeString

public java.lang.String getTypeString()
Given a request type, return the equivalent string. For diagnostic purposes.
Returns:
type string "#NODESET"
Overrides:
getTypeString in class XObject

getNumberFromNode

public double getNumberFromNode(int n)
Get numeric value of the string conversion from a single node.
Parameters:
n - Node to convert
Returns:
numeric value of the string conversion from a single node.

num

public double num()
Cast result object to a number.
Returns:
numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found
Overrides:
num in class XObject

numWithSideEffects

public double numWithSideEffects()
Cast result object to a number, but allow side effects, such as the incrementing of an iterator.
Returns:
numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found
Overrides:
numWithSideEffects in class XObject

bool

public boolean bool()
Cast result object to a boolean.
Returns:
True if there is a next node in the nodeset
Overrides:
bool in class XObject

boolWithSideEffects

public boolean boolWithSideEffects()
Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.
Returns:
True if there is a next node in the nodeset
Overrides:
boolWithSideEffects in class XObject

getStringFromNode

public XMLString getStringFromNode(int n)
Get the string conversion from a single node.
Parameters:
n - Node to convert
Returns:
the string conversion from a single node.

dispatchCharactersEvents

public void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
                              throws org.xml.sax.SAXException
Directly call the characters method on the passed ContentHandler for the string-value. Multiple calls to the ContentHandler's characters methods may well occur for a single call to this method.
Parameters:
ch - A non-null reference to a ContentHandler.
Throws:
org.xml.sax.SAXException -  
Overrides:
dispatchCharactersEvents in class XObject

xstr

public XMLString xstr()
Cast result object to an XMLString.
Returns:
The document fragment node data or the empty string.
Overrides:
xstr in class XObject

appendToFsb

public void appendToFsb(FastStringBuffer fsb)
Cast result object to a string.
Returns:
The string this wraps or the empty string if null
Overrides:
appendToFsb in class XObject

allowDetachToRelease

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

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.
Overrides:
detach in class XObject

str

public java.lang.String str()
Cast result object to a string.
Returns:
the string conversion from the next node in the nodeset or "" if there is no next node
Overrides:
str in class XObject

nodeset

public org.w3c.dom.traversal.NodeIterator nodeset()
                                           throws javax.xml.transform.TransformerException
Cast result object to a nodelist. Always issues an error.
Returns:
null
Throws:
javax.xml.transform.TransformerException -  
Overrides:
nodeset in class XObject

nodelist

public org.w3c.dom.NodeList nodelist()
                              throws javax.xml.transform.TransformerException
Cast result object to a nodelist. Always issues an error.
Returns:
null
Throws:
javax.xml.transform.TransformerException -  
Overrides:
nodelist in class XObject

iterRaw

public DTMIterator iterRaw()
Return the iterator without cloning, etc.

iter

public DTMIterator iter()
Cast result object to a nodelist.
Returns:
The nodeset as a nodelist
Overrides:
iter in class XObject

mutableNodeset

public NodeSetDTM mutableNodeset()
Cast result object to a mutableNodeset.
Returns:
The nodeset as a mutableNodeset
Overrides:
mutableNodeset in class XObject

compare

public boolean compare(XObject obj2,
                       org.apache.xpath.objects.Comparator comparator)
                throws javax.xml.transform.TransformerException
Tell if one object is less than the other.
Parameters:
obj2 - Object to compare this nodeset to
comparator - Comparator to use
Returns:
See the comments below for each object type comparison
Throws:
javax.xml.transform.TransformerException -  

lessThan

public boolean lessThan(XObject obj2)
                 throws javax.xml.transform.TransformerException
Tell if one object is less than the other.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
lessThan in class XObject

lessThanOrEqual

public boolean lessThanOrEqual(XObject obj2)
                        throws javax.xml.transform.TransformerException
Tell if one object is less than or equal to the other.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
lessThanOrEqual in class XObject

greaterThan

public boolean greaterThan(XObject obj2)
                    throws javax.xml.transform.TransformerException
Tell if one object is less than the other.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
greaterThan in class XObject

greaterThanOrEqual

public boolean greaterThanOrEqual(XObject obj2)
                           throws javax.xml.transform.TransformerException
Tell if one object is less than the other.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
greaterThanOrEqual in class XObject

equals

public boolean equals(XObject obj2)
Tell if two objects are functionally equal.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
equals in class XObject

notEquals

public boolean notEquals(XObject obj2)
                  throws javax.xml.transform.TransformerException
Tell if two objects are functionally not equal.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException -  
Overrides:
notEquals in class XObject


Copyright © 2001 Apache XML Project. All Rights Reserved.