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

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(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.
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 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

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 interface XObject
Parameters:
ch - A non-null reference to a ContentHandler.

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 javax.xml.transform.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(...)

greaterThanOrEqual

public boolean greaterThanOrEqual(XObject obj2)
            throws javax.xml.transform.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(...)

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 javax.xml.transform.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(...)

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 interface XObject
Parameters:
obj2 - object to compare this nodeset to
Returns:
see this.compare(...)

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 javax.xml.transform.TransformerException
Cast result object to a nodelist.
Overrides:
nodelist in interface XObject
Returns:
a NodeList.

nodeset

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

notEquals

public boolean notEquals(XObject obj2)
            throws javax.xml.transform.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(...)

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 © 2006 Apache XML Project. All Rights Reserved.