org.jaxen.javabean

Class JavaBeanXPath

Implemented Interfaces:
Serializable, XPath

public class JavaBeanXPath
extends BaseXPath

An XPath implementation for JavaBeans.

This is the main entry point for matching an XPath against a JavaBean tree. You create a compiled XPath object, then match it against one or more context nodes using the selectNodes(Object) method, as in the following example:

 Node node = ...;
 XPath path = new JavaBeanXPath("a/b/c");
 List results = path.selectNodes(node);
 
Version:
$Revision: 1.6 $
Author:
bob mcwhirter
See Also:
BaseXPath

Field Summary

private static long
serialVersionUID

Fields inherited from class org.jaxen.BaseXPath

exprText, navigator, support, xpath

Constructor Summary

JavaBeanXPath(String xpathExpr)
Construct given an XPath expression string.

Method Summary

Object
evaluate(Object node)
Evaluate this XPath against a given context.
protected Context
getContext(Object node)
Create a Context wrapper for the provided implementation-specific object.

Methods inherited from class org.jaxen.BaseXPath

addNamespace, booleanValueOf, createFunctionContext, createNamespaceContext, createVariableContext, debug, evaluate, getContext, getContextSupport, getFunctionContext, getNamespaceContext, getNavigator, getRootExpr, getVariableContext, numberValueOf, selectNodes, selectNodesForContext, selectSingleNode, selectSingleNodeForContext, setFunctionContext, setNamespaceContext, setVariableContext, stringValueOf, toString, valueOf

Field Details

serialVersionUID

private static final long serialVersionUID
Field Value:
-1567521943360266313L

Constructor Details

JavaBeanXPath

public JavaBeanXPath(String xpathExpr)
            throws JaxenException
Construct given an XPath expression string.
Parameters:
xpathExpr - The XPath expression.
Throws:
JaxenException - if there is a syntax error while parsing the expression

Method Details

evaluate

public Object evaluate(Object node)
            throws JaxenException
Evaluate this XPath against a given context. The context of evaluation may be any object type the navigator recognizes as a node. The return value is either a String, Double, Boolean, or List of nodes.

When using this method, one must be careful to test the class of the returned object. If the returned object is a list, then the items in this list will be the actual Document, Element, Attribute, etc. objects as defined by the concrete XML object-model implementation, directly from the context document. This method does not return copies of anything, but merely returns references to objects within the source document.

Specified by:
evaluate in interface XPath
Overrides:
evaluate in interface BaseXPath
Parameters:
Returns:
the result of evaluating the XPath expression against the supplied context
Throws:
JaxenException - if an XPath error occurs during expression evaluation

getContext

protected Context getContext(Object node)
Create a Context wrapper for the provided implementation-specific object.
Overrides:
getContext in interface BaseXPath
Parameters:
node - the implementation-specific object to be used as the context
Returns:
a Context wrapper around the object