org.apache.xpath.jaxp

## Class XPathImpl

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

- All Implemented Interfaces:
    javax.xml.xpath.XPath

      public class XPathImpl
      extends java.lang.Object
      implements javax.xml.xpath.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.
  Version:
    $Revision$
  Author:
    Ramesh Mandava

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `javax.xml.xpath.XPathExpression` | `compile(java.lang.String expression)` Compile an XPath expression for later evaluation.
    `java.lang.String` | `evaluate(java.lang.String expression, org.xml.sax.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, org.xml.sax.InputSource source, javax.xml.namespace.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, javax.xml.namespace.QName returnType)` Evaluate an `XPath` expression in the specified context and return the result as the specified type.
    `javax.xml.namespace.NamespaceContext` | `getNamespaceContext()` Returns the current namespace context.
    `javax.xml.xpath.XPathFunctionResolver` | `getXPathFunctionResolver()` Returns the current function resolver.
    `javax.xml.xpath.XPathVariableResolver` | `getXPathVariableResolver()` Returns the current variable resolver.
    `void` | `reset()` Reset this `XPath` to its original configuration.
    `void` | `setNamespaceContext(javax.xml.namespace.NamespaceContext nsContext)` Establishes a namespace context.
    `void` | `setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver resolver)` Establishes a function resolver.
    `void` | `setXPathVariableResolver(javax.xml.xpath.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(javax.xml.xpath.XPathVariableResolver resolver)

      Establishes a variable resolver.

      Specified by:
        `setXPathVariableResolver` in interface `javax.xml.xpath.XPath`
      Parameters:
        `resolver` - Variable Resolver

    - #### getXPathVariableResolver

          public javax.xml.xpath.XPathVariableResolver getXPathVariableResolver()

      Returns the current variable resolver.

      Specified by:
        `getXPathVariableResolver` in interface `javax.xml.xpath.XPath`
      Returns:
        Current variable resolver

    - #### setXPathFunctionResolver

          public void setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver resolver)

      Establishes a function resolver.

      Specified by:
        `setXPathFunctionResolver` in interface `javax.xml.xpath.XPath`
      Parameters:
        `resolver` - XPath function resolver

    - #### getXPathFunctionResolver

          public javax.xml.xpath.XPathFunctionResolver getXPathFunctionResolver()

      Returns the current function resolver.

      Specified by:
        `getXPathFunctionResolver` in interface `javax.xml.xpath.XPath`
      Returns:
        Current function resolver

    - #### setNamespaceContext

          public void setNamespaceContext(javax.xml.namespace.NamespaceContext nsContext)

      Establishes a namespace context.

      Specified by:
        `setNamespaceContext` in interface `javax.xml.xpath.XPath`
      Parameters:
        `nsContext` - Namespace context to use

    - #### getNamespaceContext

          public javax.xml.namespace.NamespaceContext getNamespaceContext()

      Returns the current namespace context.

      Specified by:
        `getNamespaceContext` in interface `javax.xml.xpath.XPath`
      Returns:
        Current Namespace context

    - #### evaluate

          public java.lang.Object evaluate(java.lang.String expression,
                                           java.lang.Object item,
                                           javax.xml.namespace.QName returnType)
                                    throws javax.xml.xpath.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 `javax.xml.xpath.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:
        `javax.xml.xpath.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 javax.xml.xpath.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 `javax.xml.xpath.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:
        `javax.xml.xpath.XPathExpressionException` - If `expression` cannot be evaluated.
        `java.lang.NullPointerException` - If `expression` is `null`.

    - #### compile

          public javax.xml.xpath.XPathExpression compile(java.lang.String expression)
                                                  throws javax.xml.xpath.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 `javax.xml.xpath.XPath`
      Parameters:
        `expression` - The XPath expression.
      Returns:
        Compiled XPath expression.
      Throws:
        `javax.xml.xpath.XPathExpressionException` - If `expression` cannot be compiled.
        `java.lang.NullPointerException` - If `expression` is `null`.

    - #### evaluate

          public java.lang.Object evaluate(java.lang.String expression,
                                           org.xml.sax.InputSource source,
                                           javax.xml.namespace.QName returnType)
                                    throws javax.xml.xpath.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 `javax.xml.xpath.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:
        `javax.xml.xpath.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,
                                           org.xml.sax.InputSource source)
                                    throws javax.xml.xpath.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 `javax.xml.xpath.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:
        `javax.xml.xpath.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 `javax.xml.xpath.XPath`

Copyright © 2023 Apache XML Project. All Rights Reserved.