org.apache.xpath.objects
Class XNodeSet

java.lang.Object
  extended by org.apache.xpath.Expression
      extended by org.apache.xpath.objects.XObject
          extended by org.apache.xpath.axes.NodeSequence
              extended by org.apache.xpath.objects.XNodeSet
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, DTMIterator, PathComponent, ExpressionNode, XPathVisitable
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

Field Summary
(package private) static EqualComparator S_EQ
          Equal comparator
(package private) static GreaterThanComparator S_GT
          Greater than comparator
(package private) static GreaterThanOrEqualComparator S_GTE
          Greater than or equal comparator
(package private) static LessThanComparator S_LT
          Less than comparator
(package private) static LessThanOrEqualComparator S_LTE
          Less than or equal comparator
(package private) static NotEqualComparator S_NEQ
          Not equal comparator
(package private) static long serialVersionUID
           
 
Fields inherited from class org.apache.xpath.axes.NodeSequence
m_dtmMgr, m_iter, m_last, m_next
 
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 interface org.apache.xml.dtm.DTMIterator
FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP
 
Constructor Summary
protected XNodeSet()
          Default constructor for derived objects.
  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, Comparator comparator)
          Tell if one object is less than the other.
 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.
 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.
 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.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
addNodeInDocOrder, allowDetachToRelease, clone, cloneWithReset, detach, fixupVariables, getAnalysisBits, getAxis, getContainedIter, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getIteratorCache, getLength, getRoot, getVector, getWhatToShow, hasCache, isDocOrdered, isFresh, isMutable, item, nextNode, previousNode, reset, runTo, setCurrentPos, setItem, setIter, setObject, setRoot, setShouldCacheNodes, SetVector
 
Methods inherited from class org.apache.xpath.objects.XObject
callVisitors, castToType, create, create, deepEquals, destruct, error, error, 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, isSameClass, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

S_LT

static final LessThanComparator S_LT
Less than comparator


S_LTE

static final LessThanOrEqualComparator S_LTE
Less than or equal comparator


S_GT

static final GreaterThanComparator S_GT
Greater than comparator


S_GTE

static final GreaterThanOrEqualComparator S_GTE
Greater than or equal comparator


S_EQ

static final EqualComparator S_EQ
Equal comparator


S_NEQ

static final NotEqualComparator S_NEQ
Not equal comparator

Constructor Detail

XNodeSet

protected XNodeSet()
Default constructor for derived objects.


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.

Overrides:
getType in class XObject
Returns:
type CLASS_NODESET

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 "#NODESET"

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.

Overrides:
num in class XObject
Returns:
numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found

numWithSideEffects

public double numWithSideEffects()
Cast result object to a number, but allow side effects, such as the incrementing of an iterator.

Overrides:
numWithSideEffects in class XObject
Returns:
numeric value of the string conversion from the next node in the NodeSetDTM, or NAN if no node was found

bool

public boolean bool()
Cast result object to a boolean.

Overrides:
bool in class XObject
Returns:
True if there is a next node in the nodeset

boolWithSideEffects

public boolean boolWithSideEffects()
Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.

Overrides:
boolWithSideEffects in class XObject
Returns:
True if there is a next node in the nodeset

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.

Overrides:
dispatchCharactersEvents in class XObject
Parameters:
ch - A non-null reference to a ContentHandler.
Throws:
org.xml.sax.SAXException

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 string conversion from the next node in the nodeset or "" if there is no next node

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

nodeset

public org.w3c.dom.traversal.NodeIterator nodeset()
                                           throws javax.xml.transform.TransformerException
Cast result object to a nodelist.

Overrides:
nodeset in class XObject
Returns:
a NodeIterator.
Throws:
javax.xml.transform.TransformerException

nodelist

public org.w3c.dom.NodeList nodelist()
                              throws javax.xml.transform.TransformerException
Cast result object to a nodelist.

Overrides:
nodelist in class XObject
Returns:
a NodeList.
Throws:
javax.xml.transform.TransformerException

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.

Overrides:
iter in class XObject
Returns:
The nodeset as a nodelist

getFresh

public XObject getFresh()
Get a fresh copy of the object. For use with variables.

Overrides:
getFresh in class XObject
Returns:
A fresh nodelist.

mutableNodeset

public NodeSetDTM mutableNodeset()
Cast result object to a mutableNodeset.

Overrides:
mutableNodeset in class XObject
Returns:
The nodeset as a mutableNodeset

compare

public boolean compare(XObject obj2,
                       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.

Overrides:
lessThan in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException

lessThanOrEqual

public boolean lessThanOrEqual(XObject obj2)
                        throws javax.xml.transform.TransformerException
Tell if one object is less than or equal to the other.

Overrides:
lessThanOrEqual in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException

greaterThan

public boolean greaterThan(XObject obj2)
                    throws javax.xml.transform.TransformerException
Tell if one object is less than the other.

Overrides:
greaterThan in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException

greaterThanOrEqual

public boolean greaterThanOrEqual(XObject obj2)
                           throws javax.xml.transform.TransformerException
Tell if one object is less than the other.

Overrides:
greaterThanOrEqual in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException

equals

public boolean equals(XObject obj2)
Tell if two objects are functionally equal.

Overrides:
equals in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException

notEquals

public boolean notEquals(XObject obj2)
                  throws javax.xml.transform.TransformerException
Tell if two objects are functionally not equal.

Overrides:
notEquals in class XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)
Throws:
javax.xml.transform.TransformerException