Package 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
-
- 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
-
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
Constructors Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.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
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
-
-
-
-
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.
-
getTypeString
public java.lang.String getTypeString()
Given a request type, return the equivalent string. For diagnostic purposes.- Overrides:
getTypeString
in classXObject
- 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.
-
numWithSideEffects
public double numWithSideEffects()
Cast result object to a number, but allow side effects, such as the incrementing of an iterator.- Overrides:
numWithSideEffects
in classXObject
- 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.
-
boolWithSideEffects
public boolean boolWithSideEffects()
Cast result object to a boolean, but allow side effects, such as the incrementing of an iterator.- Overrides:
boolWithSideEffects
in classXObject
- 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 classXObject
- Parameters:
ch
- A non-null reference to a ContentHandler.- Throws:
org.xml.sax.SAXException
-
xstr
public XMLString xstr()
Cast result object to an XMLString.
-
appendToFsb
public void appendToFsb(FastStringBuffer fsb)
Cast result object to a string.- Overrides:
appendToFsb
in classXObject
-
str
public java.lang.String str()
Cast result object to a string.
-
object
public java.lang.Object object()
Return a java object that's closest to the representation that should be handed to an extension.
-
nodeset
public org.w3c.dom.traversal.NodeIterator nodeset() throws javax.xml.transform.TransformerException
Cast result object to a nodelist.
-
nodelist
public org.w3c.dom.NodeList nodelist() throws javax.xml.transform.TransformerException
Cast result object to a nodelist.
-
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.
-
getFresh
public XObject getFresh()
Get a fresh copy of the object. For use with variables.
-
mutableNodeset
public NodeSetDTM mutableNodeset()
Cast result object to a mutableNodeset.- Overrides:
mutableNodeset
in classXObject
- Returns:
- The nodeset as a mutableNodeset
-
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 tocomparator
- 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.
-
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 classXObject
- 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 classXObject
- 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 classXObject
- 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.
-
notEquals
public boolean notEquals(XObject obj2) throws javax.xml.transform.TransformerException
Tell if two objects are functionally not equal.
-
-