org.apache.xpath.jaxp
Class XPathImpl

java.lang.Object
  extended by 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.


Field Summary
private static org.w3c.dom.Document d
           
private  boolean featureSecureProcessing
           
private  javax.xml.xpath.XPathFunctionResolver functionResolver
           
private  javax.xml.namespace.NamespaceContext namespaceContext
           
private  javax.xml.xpath.XPathFunctionResolver origFunctionResolver
           
private  javax.xml.xpath.XPathVariableResolver origVariableResolver
           
private  JAXPPrefixResolver prefixResolver
           
private  javax.xml.xpath.XPathVariableResolver variableResolver
           
 
Constructor Summary
XPathImpl(javax.xml.xpath.XPathVariableResolver vr, javax.xml.xpath.XPathFunctionResolver fr)
           
XPathImpl(javax.xml.xpath.XPathVariableResolver vr, javax.xml.xpath.XPathFunctionResolver fr, boolean featureSecureProcessing)
           
 
Method Summary
 javax.xml.xpath.XPathExpression compile(java.lang.String expression)
          Compile an XPath expression for later evaluation.
private  XObject eval(java.lang.String expression, java.lang.Object contextItem)
           
 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.
private static org.w3c.dom.Document getDummyDocument()
           
 javax.xml.namespace.NamespaceContext getNamespaceContext()
          Returns the current namespace context.
private static javax.xml.parsers.DocumentBuilder getParser()
           
private  java.lang.Object getResultAsType(XObject resultObject, javax.xml.namespace.QName returnType)
           
 javax.xml.xpath.XPathFunctionResolver getXPathFunctionResolver()
          Returns the current function resolver.
 javax.xml.xpath.XPathVariableResolver getXPathVariableResolver()
          Returns the current variable resolver.
private  boolean isSupported(javax.xml.namespace.QName returnType)
           
 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

variableResolver

private javax.xml.xpath.XPathVariableResolver variableResolver

functionResolver

private javax.xml.xpath.XPathFunctionResolver functionResolver

origVariableResolver

private javax.xml.xpath.XPathVariableResolver origVariableResolver

origFunctionResolver

private javax.xml.xpath.XPathFunctionResolver origFunctionResolver

namespaceContext

private javax.xml.namespace.NamespaceContext namespaceContext

prefixResolver

private JAXPPrefixResolver prefixResolver

featureSecureProcessing

private boolean featureSecureProcessing

d

private static org.w3c.dom.Document d
Constructor Detail

XPathImpl

XPathImpl(javax.xml.xpath.XPathVariableResolver vr,
          javax.xml.xpath.XPathFunctionResolver fr)

XPathImpl

XPathImpl(javax.xml.xpath.XPathVariableResolver vr,
          javax.xml.xpath.XPathFunctionResolver fr,
          boolean featureSecureProcessing)
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

getParser

private static javax.xml.parsers.DocumentBuilder getParser()

getDummyDocument

private static org.w3c.dom.Document getDummyDocument()

eval

private XObject eval(java.lang.String expression,
                     java.lang.Object contextItem)
              throws javax.xml.transform.TransformerException
Throws:
javax.xml.transform.TransformerException

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.

isSupported

private boolean isSupported(javax.xml.namespace.QName returnType)

getResultAsType

private java.lang.Object getResultAsType(XObject resultObject,
                                         javax.xml.namespace.QName returnType)
                                  throws javax.xml.transform.TransformerException
Throws:
javax.xml.transform.TransformerException

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 XPathFunctions, 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 XPaths thus saving resources associated with the creation of new XPaths.

The reset XPath is not guaranteed to have the same XPathFunctionResolver, XPathVariableResolver or NamespaceContext Objects, 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