org.apache.xpath.objects

Class XNodeSet

Implemented Interfaces:
Cloneable, DTMIterator, ExpressionNode, PathComponent, Serializable, SourceLocator, XPathVisitable
Known Direct 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

Nested Class Summary

Field Summary

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

Fields inherited from interface org.apache.xml.dtm.DTMIterator

FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP

Constructor Summary

XNodeSet(int n, DTMManager dtmMgr)
Construct a XNodeSet object for one node.
XNodeSet(DTMIterator val)
Construct a XNodeSet object.
XNodeSet(DTMManager dtmMgr)
Construct an empty XNodeSet object.
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.
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.
Object
object()
Return a java object that's closest to the representation that should be handed to an extension.
void
release(DTMIterator iter)
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

allowDetachToRelease, appendToFsb, bool, boolWithSideEffects, callVisitors, castToType, create, create, deepEquals, destruct, detach, dispatchCharactersEvents, equals, execute, fixupVariables, getFresh, getType, getTypeString, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, num, numWithSideEffects, object, reset, rtf, rtf, rtree, rtree, str, toString, xstr

Methods inherited from class org.apache.xpath.Expression

asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, deepEquals, error, execute, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, fixupVariables, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isStableNumber, num, warn, xstr

Constructor Details

XNodeSet

public XNodeSet(int n,
                DTMManager dtmMgr)
Construct a XNodeSet object for one node.

Parameters:
n - Node to add to the new XNodeSet object


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(XNodeSet val)
Construct a XNodeSet object.

Parameters:
val - Value of the XNodeSet object

Method Details

appendToFsb

public void appendToFsb(FastStringBuffer fsb)
Cast result object to a string.
Overrides:
appendToFsb in interface XObject


bool

public boolean bool()
Cast result object to a boolean.
Overrides:
bool in interface 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 interface XObject

Returns:
True if there is a next node in the nodeset


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 -


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.
Overrides:
dispatchCharactersEvents in interface XObject

Parameters:
ch - A non-null reference to a ContentHandler.

Throws:
SAXException -


equals

public boolean equals(XObject obj2)
Tell if two objects are functionally equal.
Overrides:
equals in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)


getFresh

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

Returns:
A fresh nodelist.


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.


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.


getType

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

Returns:
type CLASS_NODESET


getTypeString

public String getTypeString()
Given a request type, return the equivalent string. For diagnostic purposes.
Overrides:
getTypeString in interface XObject

Returns:
type string "#NODESET"


greaterThan

public boolean greaterThan(XObject obj2)
            throws TransformerException
Tell if one object is less than the other.
Overrides:
greaterThan in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)

Throws:
TransformerException -


greaterThanOrEqual

public boolean greaterThanOrEqual(XObject obj2)
            throws TransformerException
Tell if one object is less than the other.
Overrides:
greaterThanOrEqual in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)

Throws:
TransformerException -


iter

public DTMIterator iter()
Cast result object to a nodelist.
Overrides:
iter in interface XObject

Returns:
The nodeset as a nodelist


iterRaw

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


lessThan

public boolean lessThan(XObject obj2)
            throws TransformerException
Tell if one object is less than the other.
Overrides:
lessThan in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)

Throws:
TransformerException -


lessThanOrEqual

public boolean lessThanOrEqual(XObject obj2)
            throws TransformerException
Tell if one object is less than or equal to the other.
Overrides:
lessThanOrEqual in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)

Throws:
TransformerException -


mutableNodeset

public NodeSetDTM mutableNodeset()
Cast result object to a mutableNodeset.
Overrides:
mutableNodeset in interface XObject

Returns:
The nodeset as a mutableNodeset


nodelist

public NodeList nodelist()
            throws TransformerException
Cast result object to a nodelist.
Overrides:
nodelist in interface XObject

Returns:
a NodeList.

Throws:
TransformerException -


nodeset

public NodeIterator nodeset()
            throws TransformerException
Cast result object to a nodelist.
Overrides:
nodeset in interface XObject

Returns:
a NodeIterator.

Throws:
TransformerException -


notEquals

public boolean notEquals(XObject obj2)
            throws TransformerException
Tell if two objects are functionally not equal.
Overrides:
notEquals in interface XObject

Parameters:
obj2 - object to compare this nodeset to

Returns:
see this.compare(...)

Throws:
TransformerException -


num

public double num()
Cast result object to a number.
Overrides:
num in interface 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 interface XObject

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


object

public Object object()
Return a java object that's closest to the representation that should be handed to an extension.
Overrides:
object in interface XObject

Returns:
The object that this class wraps


release

public void release(DTMIterator iter)


str

public String str()
Cast result object to a string.
Overrides:
str in interface XObject

Returns:
the string conversion from the next node in the nodeset or "" if there is no next node


xstr

public XMLString xstr()
Cast result object to an XMLString.
Overrides:
xstr in interface XObject

Returns:
The document fragment node data or the empty string.


Copyright B) 2004 Apache XML Project. All Rights Reserved.