org.apache.xpath.objects
Class XNodeSet

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

public class XNodeSet
extends NodeSequence

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
Usage:

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.
XNodeSet(XNodeSet val)
          Construct a XNodeSet object.
 
Method Summary
 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 dispatchCharactersEvents(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.
 XObject getFresh()
          Get a fresh copy of the object.
 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.
 NodeList nodelist()
          Cast result object to a nodelist.
 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.Object object()
          Return a java object that's closest to the representation that should be handed to an extension.
 void release(DTMIterator iter)
           
 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.axes.NodeSequence
allowDetachToRelease, clone, cloneWithReset, detach, fixupVariables, getAnalysisBits, getAxis, getContainedIter, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getLength, getRoot, getWhatToShow, hasCache, isDocOrdered, isFresh, isMutable, item, nextNode, previousNode, reset, runTo, setCurrentPos, setItem, setIter, setRoot, setShouldCacheNodes
 
Methods inherited from class org.apache.xpath.objects.XObject
callVisitors, castToType, create, create, deepEquals, destruct, execute, rtf, 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

XNodeSet

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

XNodeSet

public XNodeSet(XNodeSet 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

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(ContentHandler ch)
                              throws 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:
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

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

object

public java.lang.Object object()
Return a java object that's closest to the representation that should be handed to an extension.
Returns:
The object that this class wraps
Overrides:
object in class XObject

nodeset

public NodeIterator nodeset()
                     throws TransformerException
Cast result object to a nodelist.
Returns:
a NodeIterator.
Throws:
TransformerException -  
Overrides:
nodeset in class XObject

nodelist

public NodeList nodelist()
                  throws TransformerException
Cast result object to a nodelist.
Returns:
a NodeList.
Throws:
TransformerException -  
Overrides:
nodelist in class XObject

iterRaw

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

release

public void release(DTMIterator iter)

iter

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

getFresh

public XObject getFresh()
Get a fresh copy of the object. For use with variables.
Returns:
A fresh nodelist.
Overrides:
getFresh 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 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:
TransformerException -  

lessThan

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

lessThanOrEqual

public boolean lessThanOrEqual(XObject obj2)
                        throws 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:
TransformerException -  
Overrides:
lessThanOrEqual in class XObject

greaterThan

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

greaterThanOrEqual

public boolean greaterThanOrEqual(XObject obj2)
                           throws TransformerException
Tell if one object is less than the other.
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
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:
TransformerException -  
Overrides:
equals in class XObject

notEquals

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


Copyright 2006 Apache XML Project. All Rights Reserved.