## org.apache.xpath.jaxp
Class XPathImpl

    java.lang.Object
      |
      +--org.apache.xpath.jaxp.XPathImpl

public class XPathImpl
extends java.lang.Object
implements XPath

The XPathImpl class provides implementation for the methods defined in javax.xml.xpath.XPath interface. This provide simple access to the results of an XPath expression.

Method Summary
`XPathExpression` `compile(java.lang.String expression)` Compile an XPath expression for later evaluation.
`java.lang.String` `evaluate(java.lang.String expression, InputSource source)` Evaluate an XPath expression in the context of the specified `InputSource` and return the result as a `String`.
`java.lang.Object` `evaluate(java.lang.String expression, InputSource source, QName returnType)` Evaluate an XPath expression in the context of the specified `InputSource` and return the result as the specified type.
`java.lang.String` `evaluate(java.lang.String expression, java.lang.Object item)` Evaluate an XPath expression in the specified context and return the result as a `String`.
`java.lang.Object` `evaluate(java.lang.String expression, java.lang.Object item, QName returnType)` Evaluate an `XPath` expression in the specified context and return the result as the specified type.
`NamespaceContext` `getNamespaceContext()` Returns the current namespace context.
`XPathFunctionResolver` `getXPathFunctionResolver()` Returns the current function resolver.
`XPathVariableResolver` `getXPathVariableResolver()` Returns the current variable resolver.
`void` `reset()` Reset this `XPath` to its original configuration.
`void` `setNamespaceContext(NamespaceContext nsContext)` Establishes a namespace context.
`void` `setXPathFunctionResolver(XPathFunctionResolver resolver)` Establishes a function resolver.
`void` `setXPathVariableResolver(XPathVariableResolver resolver)` Establishes a variable resolver.

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

Method Detail

### setXPathVariableResolver

    public void setXPathVariableResolver(XPathVariableResolver resolver)

  Establishes a variable resolver.

  Specified by:
    setXPathVariableResolver in interface XPath
  Parameters:
    `resolver` - Variable Resolver

### getXPathVariableResolver

    public XPathVariableResolver getXPathVariableResolver()

  Returns the current variable resolver.

  Specified by:
    getXPathVariableResolver in interface XPath
  Returns:
    Current variable resolver

### setXPathFunctionResolver

    public void setXPathFunctionResolver(XPathFunctionResolver resolver)

  Establishes a function resolver.

  Specified by:
    setXPathFunctionResolver in interface XPath
  Parameters:
    `resolver` - XPath function resolver

### getXPathFunctionResolver

    public XPathFunctionResolver getXPathFunctionResolver()

  Returns the current function resolver.

  Specified by:
    getXPathFunctionResolver in interface XPath
  Returns:
    Current function resolver

### setNamespaceContext

    public void setNamespaceContext(NamespaceContext nsContext)

  Establishes a namespace context.

  Specified by:
    setNamespaceContext in interface XPath
  Parameters:
    `nsContext` - Namespace context to use

### getNamespaceContext

    public NamespaceContext getNamespaceContext()

  Returns the current namespace context.

  Specified by:
    getNamespaceContext in interface XPath
  Returns:
    Current Namespace context

### evaluate

    public java.lang.Object evaluate(java.lang.String expression,
                                     java.lang.Object item,
                                     QName returnType)
                              throws XPathExpressionException

  Evaluate an `XPath` expression in the specified context and return the result as the specified type.

  See "Evaluation of XPath Expressions" section of JAXP 1.3 spec for context item evaluation, variable, function and `QName` resolution and return type conversion.

  If `returnType` is not one of the types defined in `XPathConstants` ( NUMBER, STRING, BOOLEAN, NODE or NODESET) then an `IllegalArgumentException` is thrown.

  If a `null` value is provided for `item`, an empty document will be used for the context. If `expression` or `returnType` is `null`, then a `NullPointerException` is thrown.

  Specified by:
    evaluate in interface XPath
  Parameters:
    `expression` - The XPath expression.
    `item` - The starting context (node or node list, for example).
    `returnType` - The desired return type.
  Returns:
    Result of evaluating an XPath expression as an `Object` of `returnType`.
  Throws:
    XPathExpressionException - If `expression` cannot be evaluated.
    java.lang.IllegalArgumentException - If `returnType` is not one of the types defined in `XPathConstants`.
    java.lang.NullPointerException - If `expression` or `returnType` is `null`.

### evaluate

    public java.lang.String evaluate(java.lang.String expression,
                                     java.lang.Object item)
                              throws XPathExpressionException

  Evaluate an XPath expression in the specified context and return the result as a `String`.

  This method calls `evaluate(String expression, Object item, QName returnType)` with a `returnType` of `XPathConstants.STRING`.

  See "Evaluation of XPath Expressions" of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.

  If a `null` value is provided for `item`, an empty document will be used for the context. If `expression` is `null`, then a `NullPointerException` is thrown.

  Specified by:
    evaluate in interface XPath
  Parameters:
    `expression` - The XPath expression.
    `item` - The starting context (node or node list, for example).
  Returns:
    The `String` that is the result of evaluating the expression and converting the result to a `String`.
  Throws:
    XPathExpressionException - If `expression` cannot be evaluated.
    java.lang.NullPointerException - If `expression` is `null`.

### compile

    public XPathExpression compile(java.lang.String expression)
                            throws XPathExpressionException

  Compile an XPath expression for later evaluation.

  If `expression` contains any `XPathFunction`s, they must be available via the `XPathFunctionResolver`. An `XPathExpressionException` will be thrown if the `XPathFunction` cannot be resovled with the `XPathFunctionResolver`.

  If `expression` is `null`, a `NullPointerException` is thrown.

  Specified by:
    compile in interface XPath
  Parameters:
    `expression` - The XPath expression.
  Returns:
    Compiled XPath expression.
  Throws:
    XPathExpressionException - If `expression` cannot be compiled.
    java.lang.NullPointerException - If `expression` is `null`.

### evaluate

    public java.lang.Object evaluate(java.lang.String expression,
                                     InputSource source,
                                     QName returnType)
                              throws XPathExpressionException

  Evaluate an XPath expression in the context of the specified `InputSource` and return the result as the specified type.

  This method builds a data model for the `InputSource` and calls `evaluate(String expression, Object item, QName returnType)` on the resulting document object.

  See "Evaluation of XPath Expressions" section of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.

  If `returnType` is not one of the types defined in `XPathConstants`, then an `IllegalArgumentException` is thrown.

  If `expression`, `source` or `returnType` is `null`, then a `NullPointerException` is thrown.

  Specified by:
    evaluate in interface XPath
  Parameters:
    `expression` - The XPath expression.
    `source` - The input source of the document to evaluate over.
    `returnType` - The desired return type.
  Returns:
    The `Object` that encapsulates the result of evaluating the expression.
  Throws:
    XPathExpressionException - If expression cannot be evaluated.
    java.lang.IllegalArgumentException - If `returnType` is not one of the types defined in `XPathConstants`.
    java.lang.NullPointerException - If `expression`, `source` or `returnType` is `null`.

### evaluate

    public java.lang.String evaluate(java.lang.String expression,
                                     InputSource source)
                              throws XPathExpressionException

  Evaluate an XPath expression in the context of the specified `InputSource` and return the result as a `String`.

  This method calls `evaluate(String expression, InputSource source, QName returnType)` with a `returnType` of `XPathConstants.STRING`.

  See "Evaluation of XPath Expressions" section of JAXP 1.3 spec for context item evaluation, variable, function and QName resolution and return type conversion.

  If `expression` or `source` is `null`, then a `NullPointerException` is thrown.

  Specified by:
    evaluate in interface XPath
  Parameters:
    `expression` - The XPath expression.
    `source` - The `InputSource` of the document to evaluate over.
  Returns:
    The `String` that is the result of evaluating the expression and converting the result to a `String`.
  Throws:
    XPathExpressionException - If expression cannot be evaluated.
    java.lang.NullPointerException - If `expression` or `source` is `null`.

### reset

    public void reset()

  Reset this `XPath` to its original configuration.

  `XPath` is reset to the same state as when it was created with `XPathFactory#newXPath()`. `reset()` is designed to allow the reuse of existing `XPath`s thus saving resources associated with the creation of new `XPath`s.

  The reset `XPath` is not guaranteed to have the same `XPathFunctionResolver`, `XPathVariableResolver` or `NamespaceContext` `Object`s, e.g. `Object.equals(Object obj)`. It is guaranteed to have a functionally equal `XPathFunctionResolver`, `XPathVariableResolver` and `NamespaceContext`.

  Specified by:
    reset in interface XPath

Copyright © 2006 Apache XML Project. All Rights Reserved.