org.exolab.adaptx.xpath

Class NodeSet

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) $

Author: Keith Visco Assaf Arkin

Constructor Summary
NodeSet()
Constructs a new empty node-set.
NodeSet(XPathNode node)
Constructs a new node-set with the specified node.
NodeSet(int size)
Constructs a new empty node-set with the specified size.
Method Summary
booleanadd(XPathNode node)
Adds the specified node to this node-set without duplication.
booleanadd(XPathNode node, boolean ignoreDuplicates)
Adds the specified node to this node-set.
voidadd(NodeSet nodeSet)
Adds all nodes from the specified node-set to this node-set without duplication.
voidadd(NodeSet nodeSet, boolean ignoreDuplicates)
Adds all nodes from the specified node-set to this node-set.
booleanbooleanValue()
Returns the result as a boolean value.
voidclear()
Removes all elements from this node-set.
booleancontains(XPathNode node)
Returns true if the specified node is contained in this node-set.
booleanequals(XPathResult result)
Returns true if the given result is a node-set result and has the same set of nodes.
intgetResultType()
Returns the type of this result.
intindexOf(XPathNode node)
Returns the position of the specified node in this node-set.
XPathNodeitem(int index)
Returns the node at the specified index.
ObjectjavaObject()
Returns the result as a Java object.
doublenumberValue()
Returns the result as a number value.
booleanremove(XPathNode node)
Removes the specified node from the node-set.
voidremove(int index)
Removes the specified node from the node-set.
intsize()
Returns the number of nodes in the node-set.
StringstringValue()
Returns the result as a string value.
XPathNode[]toArray()
Returns an array containing all the nodes in this node-set.
StringtoString()
Returns the string representation of this NodeSet.

Constructor Detail

NodeSet

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

NodeSet

public NodeSet(XPathNode node)
Constructs a new node-set with the specified node.

Parameters: node The node to include in the 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

Method Detail

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

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 *

booleanValue

public boolean booleanValue()
Returns the result as a boolean value. Returns true if the node-set is not empty.

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.

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.

Returns: {@link XPathResult#NODE_SET}

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 {@link IndexOutOfBoundsException} is the index is out of range. The index is as returned by {@link #indexOf}.

Parameters: index The position of the node to return

javaObject

public Object javaObject()
Returns the result as a Java object. Returns an object of type {@link NodeSet} representing this node-set.

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 {@link java.lang.Double#NaN} if the node-set is empty.

Returns: The result as a number value

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

remove

public void remove(int index)
Removes the specified node from the node-set. The node is identified by position. Throws {@link IndexOutOfBoundsException} is the index is out of range. The index is as returned by {@link #indexOf}.

Parameters: index The position of the node to remove

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.

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.