org.exolab.adaptx.xpath
Class NodeSet

java.lang.Object
  extended by org.exolab.adaptx.xpath.XPathResult
      extended by org.exolab.adaptx.xpath.NodeSet
All 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) $
Author:
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.
 java.lang.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.
 java.lang.String stringValue()
          Returns the result as a string value.
 XPathNode[] toArray()
          Returns an array containing all the nodes in this node-set.
 java.lang.String toString()
          Returns the string representation of this NodeSet.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

getResultType

public int getResultType()
Returns the type of this result.

Specified by:
getResultType in class XPathResult
Returns:
XPathResult.NODE_SET

booleanValue

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

Specified by:
booleanValue in class XPathResult
Returns:
The result as a boolean value

numberValue

public double numberValue()
Returns the result as a number value. Returns the number value of the node's string value, or Double.NaN if the node-set is empty.

Specified by:
numberValue in class XPathResult
Returns:
The result as a number value

stringValue

public java.lang.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.

Specified by:
stringValue in class XPathResult
Returns:
The result as a string value

javaObject

public java.lang.Object javaObject()
Returns the result as a Java object. Returns an object of type NodeSet representing this node-set.

Specified by:
javaObject in class XPathResult
Returns:
The result as a Java object

equals

public boolean equals(XPathResult result)
Returns true if the given result is a node-set result and has the same set of nodes.

Specified by:
equals in class XPathResult
Parameters:
result - An XPath result
Returns:
True if a node-set result and has same set of nodes

size

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

Returns:
The number of nodes in the node-set

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 *

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

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(org.exolab.adaptx.xpath.XPathNode).

Parameters:
index - The position of the node to return

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

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 IndexOutOfBoundsException is the index is out of range. The index is as returned by indexOf(org.exolab.adaptx.xpath.XPathNode).

Parameters:
index - The position of the node to remove

clear

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


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 java.lang.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

Overrides:
toString in class java.lang.Object
Returns:
the string representation of this NodeSet.