org.exolab.adaptx.xpath

Class NodeSet

Implemented Interfaces:
java.io.Serializable

public final class NodeSet
extends XPathResult

Represents a node-set. A node-set is used as the result of an XPath expression, and during the expression to keep track of nodes being evaluated. As such, it is a mutable object. Care must be taken, as a node-set is not thread-safe and must not be used by two XPath expressions evaluating concurrently.
Version:
$Revision: 3739 $ $Date: 2003-05-13 04:01:12 -0400 (Tue, 13 May 2003) $
Authors:
Keith Visco
Assaf Arkin
See Also:
Serialized Form

Field Summary

Fields inherited from class org.exolab.adaptx.xpath.XPathResult

BOOLEAN, NODE_SET, NUMBER, STRING, USER_DEFINED

Constructor Summary

NodeSet()
Constructs a new empty node-set.
NodeSet(int size)
Constructs a new empty node-set with the specified size.
NodeSet(XPathNode node)
Constructs a new node-set with the specified node.

Method Summary

void
add(NodeSet nodeSet)
Adds all nodes from the specified node-set to this node-set without duplication.
void
add(NodeSet nodeSet, boolean ignoreDuplicates)
Adds all nodes from the specified node-set to this node-set.
boolean
add(XPathNode node)
Adds the specified node to this node-set without duplication.
boolean
add(XPathNode node, boolean ignoreDuplicates)
Adds the specified node to this node-set.
boolean
booleanValue()
Returns the result as a boolean value.
void
clear()
Removes all elements from this node-set.
boolean
contains(XPathNode node)
Returns true if the specified node is contained in this node-set.
boolean
equals(XPathResult result)
Returns true if the given result is a node-set result and has the same set of nodes.
int
getResultType()
Returns the type of this result.
int
indexOf(XPathNode node)
Returns the position of the specified node in this node-set.
XPathNode
item(int index)
Returns the node at the specified index.
Object
javaObject()
Returns the result as a Java object.
double
numberValue()
Returns the result as a number value.
void
remove(int index)
Removes the specified node from the node-set.
boolean
remove(XPathNode node)
Removes the specified node from the node-set.
int
size()
Returns the number of nodes in the node-set.
String
stringValue()
Returns the result as a string value.
XPathNode[]
toArray()
Returns an array containing all the nodes in this node-set.
String
toString()
Returns the string representation of this NodeSet.

Methods inherited from class org.exolab.adaptx.xpath.XPathResult

booleanValue, equals, getResultType, javaObject, numberValue, stringValue

Constructor Details

NodeSet

public NodeSet()
Constructs a new empty node-set.

NodeSet

public NodeSet(int size)
Constructs a new empty node-set with the specified size. This constructor is used if the node-set is known to hold only the specified number of nodes.
Parameters:
size - The expected node-set size

NodeSet

public NodeSet(XPathNode node)
Constructs a new node-set with the specified node.
Parameters:
node - The node to include in the node-set

Method Details

add

public void add(NodeSet nodeSet)
Adds all nodes from the specified node-set to this node-set without duplication.
Parameters:
nodeSet - The node-set from which to add nodes

add

public void add(NodeSet nodeSet,
                boolean ignoreDuplicates)
Adds all nodes from the specified node-set to this node-set. This method allows control over whether or not to perform duplicate checking.
Parameters:
nodeSet - The node-set from which to add nodes
ignoreDuplicates - If true, do not perform duplicate checking *

add

public boolean add(XPathNode node)
Adds the specified node to this node-set without duplication.
Parameters:
node - The node to add to this node-set
Returns:
True if the node was added, false if the node was already in this node-set

add

public boolean add(XPathNode node,
                   boolean ignoreDuplicates)
Adds the specified node to this node-set. This method allows control over whether or not to perform duplicate checking.
Parameters:
node - The node to add to this node-set
ignoreDuplicates - If true, do not perform duplicate checking
Returns:
True if the node was added, false if the node was already in this node-set

booleanValue

public boolean booleanValue()
Returns the result as a boolean value. Returns true if the node-set is not empty.
Overrides:
booleanValue in interface XPathResult
Returns:
The result as a boolean value

clear

public void clear()
Removes all elements from this node-set.

contains

public boolean contains(XPathNode node)
Returns true if the specified node is contained in this node-set.
Parameters:
node - The specified node to search
Returns:
True if the specified node is contained in this node-set

equals

public boolean equals(XPathResult result)
Returns true if the given result is a node-set result and has the same set of nodes.
Overrides:
equals in interface XPathResult
Parameters:
result - An XPath result
Returns:
True if a node-set result and has same set of nodes

getResultType

public int getResultType()
Returns the type of this result.
Overrides:
getResultType in interface XPathResult

indexOf

public int indexOf(XPathNode node)
Returns the position of the specified node in this node-set. Returns -1 i the node is not included in this node-set.

The node's index is based on the order in which it was added to the node-set, minus any nodes of lower index position that were removed from the node-set. The index ranges between zero and size() - 1 (inclusive).

Parameters:
node - the Node to get the index for

item

public XPathNode item(int index)
Returns the node at the specified index. Throws IndexOutOfBoundsException is the index is out of range. The index is as returned by indexOf(XPathNode).
Parameters:
index - The position of the node to return

javaObject

public Object javaObject()
Overrides:
javaObject in interface XPathResult
Returns:
The result as a Java object

numberValue

public double numberValue()
Returns the result as a number value. Returns the number value of the node's string value, or java.lang.Double.NaN if the node-set is empty.
Overrides:
numberValue in interface XPathResult
Returns:
The result as a number value

remove

public void remove(int index)
Parameters:
index - The position of the node to remove

remove

public boolean remove(XPathNode node)
Removes the specified node from the node-set. Returns true if the node was found and removed, false if the node was not included in this node-set.
Parameters:
node - The node to remove from this node-set
Returns:
True if the node was removed

size

public int size()
Returns the number of nodes in the node-set.
Returns:
The number of nodes in the node-set

stringValue

public String stringValue()
Returns the result as a string value. Returns the string value of the node that is first in document order, or the empty string if the node-set is empty.

Note: currently returns the string value of the first node in the node-set.

Overrides:
stringValue in interface XPathResult
Returns:
The result as a string value

toArray

public XPathNode[] toArray()
Returns an array containing all the nodes in this node-set. Returns an empty array if the node-set is empty.
Returns:
An array containing all the nodes in this node-set

toString

public String toString()
Returns the string representation of this NodeSet. This will be the concatenation of the string values of all the nodes contained within this NodeSet
Returns:
the string representation of this NodeSet.