## org.dom4j.xpath
Class DefaultXPath

    java.lang.Object
      org.dom4j.xpath.DefaultXPath

All Implemented Interfaces:
  NodeFilter, Serializable, XPath

public class DefaultXPath
extends Object
implements XPath, NodeFilter, Serializable

Default implementation of `XPath`which uses the Jaxen project.

Author:
  bob mcwhirter, James Strachan
See Also:
  Serialized Form

Constructor Summary
`DefaultXPath(String text)` Construct an XPath

Method Summary
`boolean` `booleanValueOf(Object context)` Retrieve a boolean-value interpretation of this XPath expression when evaluated against a given context.
`Object` `evaluate(Object context)` `evaluate` evaluates an XPath expression and returns the result as an `Object`.
`protected Object` `getCompareValue(Node node)` DOCUMENT ME!
`org.jaxen.FunctionContext` `getFunctionContext()` DOCUMENT ME!
`org.jaxen.NamespaceContext` `getNamespaceContext()` DOCUMENT ME!
`String` `getText()` Retrieve the textual XPath string used to initialize this Object
`org.jaxen.VariableContext` `getVariableContext()` DOCUMENT ME!
`protected void` `handleJaxenException(org.jaxen.JaxenException exception)`
`boolean` `matches(Node node)` `matches` returns true if the given node matches the XPath expression.
`Number` `numberValueOf(Object context)` `numberValueOf` evaluates an XPath expression and returns the numeric value of the XPath expression if the XPath expression results is a number, or null if the result is not a number.
`protected static org.jaxen.XPath` `parse(String text)`
`protected void` `removeDuplicates(List list, Map sortValues)` Removes items from the list which have duplicate values
`List` `selectNodes(Object context)` `selectNodes` performs this XPath expression on the given `Node`or `List`of `Node`s instances appending all the results together into a single list.
`List` `selectNodes(Object context, XPath sortXPath)` `selectNodes` evaluates the XPath expression on the given `Node`or `List`of `Node`s and returns the result as a `List` of `Node` s sorted by the sort XPath expression.
`List` `selectNodes(Object context, XPath sortXPath, boolean distinct)` `selectNodes` evaluates the XPath expression on the given `Node`or `List`of `Node`s and returns the result as a `List` of `Node` s sorted by the sort XPath expression.
`Object` `selectObject(Object context)` `selectObject` evaluates an XPath expression and returns the result as an `Object`.
`Node` `selectSingleNode(Object context)` `selectSingleNode` evaluates this XPath expression on the given `Node`or `List`of `Node`s and returns the result as a single `Node` instance.
`void` `setFunctionContext(org.jaxen.FunctionContext functionContext)` Sets the function context to be used when evaluating XPath expressions
`void` `setNamespaceContext(org.jaxen.NamespaceContext namespaceContext)` Sets the namespace context to be used when evaluating XPath expressions
`void` `setNamespaceURIs(Map map)` Sets the current NamespaceContext from a Map where the keys are the String namespace prefixes and the values are the namespace URIs.
`protected void` `setNSContext(Object context)`
`void` `setVariableContext(org.jaxen.VariableContext variableContext)` Sets the variable context to be used when evaluating XPath expressions
`void` `sort(List list)` `sort` sorts the given List of Nodes using this XPath expression as a `Comparator`.
`void` `sort(List list, boolean distinct)` `sort` sorts the given List of Nodes using this XPath expression as a `Comparator`and optionally removing duplicates.
`protected void` `sort(List list, Map sortValues)` Sorts the list based on the sortValues for each node
`String` `toString()`
`String` `valueOf(Object context)` `valueOf` evaluates this XPath expression and returns the textual representation of the results using the XPath string() function.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### DefaultXPath

    public DefaultXPath(String text)
                 throws InvalidXPathException

  Construct an XPath

Parameters:
  `text` - DOCUMENT ME!
Throws:
  `InvalidXPathException` - DOCUMENT ME!

Method Detail

### toString

    public String toString()

### getText

    public String getText()

  Retrieve the textual XPath string used to initialize this Object

  Specified by:
    `getText` in interface `XPath`
  Returns:
    The XPath string

### getFunctionContext

    public org.jaxen.FunctionContext getFunctionContext()

  Description copied from interface: `XPath`
  DOCUMENT ME!

  Specified by:
    `getFunctionContext` in interface `XPath`
  Returns:
    the current function context

### setFunctionContext

    public void setFunctionContext(org.jaxen.FunctionContext functionContext)

  Description copied from interface: `XPath`
  Sets the function context to be used when evaluating XPath expressions

  Specified by:
    `setFunctionContext` in interface `XPath`
  Parameters:
    `functionContext` - DOCUMENT ME!

### getNamespaceContext

    public org.jaxen.NamespaceContext getNamespaceContext()

  Description copied from interface: `XPath`
  DOCUMENT ME!

  Specified by:
    `getNamespaceContext` in interface `XPath`
  Returns:
    the current namespace context

### setNamespaceURIs

    public void setNamespaceURIs(Map map)

  Description copied from interface: `XPath`

  Sets the current NamespaceContext from a Map where the keys are the String namespace prefixes and the values are the namespace URIs.

  For example:

       Map uris = new HashMap();
       uris.put("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/");
       uris.put("m", "urn:xmethodsBabelFish");
       XPath xpath = document
               .createXPath("SOAP-ENV:Envelope/SOAP-ENV:Body/m:BabelFish");
       xpath.setNamespaceURIs(uris);
       Node babelfish = xpath.selectSingleNode(document);

  Specified by:
    `setNamespaceURIs` in interface `XPath`
  Parameters:
    `map` - the map containing the namespace mappings

### setNamespaceContext

    public void setNamespaceContext(org.jaxen.NamespaceContext namespaceContext)

  Description copied from interface: `XPath`
  Sets the namespace context to be used when evaluating XPath expressions

  Specified by:
    `setNamespaceContext` in interface `XPath`
  Parameters:
    `namespaceContext` - DOCUMENT ME!

### getVariableContext

    public org.jaxen.VariableContext getVariableContext()

  Description copied from interface: `XPath`
  DOCUMENT ME!

  Specified by:
    `getVariableContext` in interface `XPath`
  Returns:
    the current variable context

### setVariableContext

    public void setVariableContext(org.jaxen.VariableContext variableContext)

  Description copied from interface: `XPath`
  Sets the variable context to be used when evaluating XPath expressions

  Specified by:
    `setVariableContext` in interface `XPath`
  Parameters:
    `variableContext` - DOCUMENT ME!

### evaluate

    public Object evaluate(Object context)

  Description copied from interface: `XPath`

  `evaluate` evaluates an XPath expression and returns the result as an `Object`. The object returned can either be a `List` of `Node`instances, a `Node`instance, a `String` or a `Number`instance depending on the XPath expression.

  Specified by:
    `evaluate` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    the value of the XPath expression as a `List`of `Node` instances, a `Node`instance, a `String`or a `Number`instance depending on the XPath expression.

### selectObject

    public Object selectObject(Object context)

  Description copied from interface: `XPath`

  `selectObject` evaluates an XPath expression and returns the result as an `Object`. The object returned can either be a `List` of `Node`instances, a `Node`instance, a `String` or a `Number`instance depending on the XPath expression.

  Specified by:
    `selectObject` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    the value of the XPath expression as a `List`of `Node` instances, a `Node`instance, a `String`or a `Number`instance depending on the XPath expression.

### selectNodes

    public List selectNodes(Object context)

  Description copied from interface: `XPath`

  `selectNodes` performs this XPath expression on the given `Node`or `List`of `Node`s instances appending all the results together into a single list.

  Specified by:
    `selectNodes` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    the results of all the XPath evaluations as a single list

### selectNodes

    public List selectNodes(Object context,
                            XPath sortXPath)

  Description copied from interface: `XPath`

  `selectNodes` evaluates the XPath expression on the given `Node`or `List`of `Node`s and returns the result as a `List` of `Node` s sorted by the sort XPath expression.

  Specified by:
    `selectNodes` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
    `sortXPath` - is the XPath expression to sort by
  Returns:
    a list of `Node` instances

### selectNodes

    public List selectNodes(Object context,
                            XPath sortXPath,
                            boolean distinct)

  Description copied from interface: `XPath`

  `selectNodes` evaluates the XPath expression on the given `Node`or `List`of `Node`s and returns the result as a `List` of `Node` s sorted by the sort XPath expression.

  Specified by:
    `selectNodes` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
    `sortXPath` - is the XPath expression to sort by
    `distinct` - specifies whether or not duplicate values of the sort expression are allowed. If this parameter is true then only distinct sort expressions values are included in the result
  Returns:
    a list of `Node` instances

### selectSingleNode

    public Node selectSingleNode(Object context)

  Description copied from interface: `XPath`

  `selectSingleNode` evaluates this XPath expression on the given `Node`or `List`of `Node`s and returns the result as a single `Node` instance.

  Specified by:
    `selectSingleNode` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    a single matching `Node` instance

### valueOf

    public String valueOf(Object context)

  Description copied from interface: `XPath`

  `valueOf` evaluates this XPath expression and returns the textual representation of the results using the XPath string() function.

  Specified by:
    `valueOf` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    the string representation of the results of the XPath expression

### numberValueOf

    public Number numberValueOf(Object context)

  Description copied from interface: `XPath`

  `numberValueOf` evaluates an XPath expression and returns the numeric value of the XPath expression if the XPath expression results is a number, or null if the result is not a number.

  Specified by:
    `numberValueOf` in interface `XPath`
  Parameters:
    `context` - is either a node or a list of nodes on which to evalute the XPath
  Returns:
    the numeric result of the XPath expression or null if the result is not a number.

### booleanValueOf

    public boolean booleanValueOf(Object context)

  Description copied from interface: `XPath`
  Retrieve a boolean-value interpretation of this XPath expression when evaluated against a given context.

  The boolean-value of the expression is determined per the `boolean(..)` core function as defined in the XPath specification. This means that an expression that selects zero nodes will return `false`, while an expression that selects one-or-more nodes will return `true`.

  Specified by:
    `booleanValueOf` in interface `XPath`
  Parameters:
    `context` - The node, nodeset or Context object for evaluation. This value can be null
  Returns:
    The boolean-value interpretation of this expression.

### sort

    public void sort(List list)

  `sort` sorts the given List of Nodes using this XPath expression as a `Comparator`.

  Specified by:
    `sort` in interface `XPath`
  Parameters:
    `list` - is the list of Nodes to sort

### sort

    public void sort(List list,
                     boolean distinct)

  `sort` sorts the given List of Nodes using this XPath expression as a `Comparator`and optionally removing duplicates.

  Specified by:
    `sort` in interface `XPath`
  Parameters:
    `list` - is the list of Nodes to sort
    `distinct` - if true then duplicate values (using the sortXPath for comparisions) will be removed from the List

### matches

    public boolean matches(Node node)

  Description copied from interface: `XPath`

  `matches` returns true if the given node matches the XPath expression. To be more precise when evaluating this XPath expression on the given node the result set must include the node.

  Specified by:
    `matches` in interface `XPath`
  Parameters:
    `node` - DOCUMENT ME!
  Returns:
    true if the given node matches this XPath expression

### sort

    protected void sort(List list,
                        Map sortValues)

  Sorts the list based on the sortValues for each node

  Parameters:
    `list` - DOCUMENT ME!
    `sortValues` - DOCUMENT ME!

### removeDuplicates

    protected void removeDuplicates(List list,
                                    Map sortValues)

  Removes items from the list which have duplicate values

  Parameters:
    `list` - DOCUMENT ME!
    `sortValues` - DOCUMENT ME!

### getCompareValue

    protected Object getCompareValue(Node node)

  DOCUMENT ME!

  Parameters:
    `node` - DOCUMENT ME!
  Returns:
    the node expression used for sorting comparisons

### parse

    protected static org.jaxen.XPath parse(String text)

### setNSContext

    protected void setNSContext(Object context)

### handleJaxenException

    protected void handleJaxenException(org.jaxen.JaxenException exception)
                                 throws XPathException

  Throws:
    `XPathException`

Copyright © 2001-2005 MetaStuff Ltd.. All Rights Reserved.