Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.jaxen.BaseXPath
Navigator
implementation.
XPath for dom4j
, XPath for JDOM
, XPath for W3C DOM
Field Summary | |
private String |
|
private Navigator |
|
private ContextSupport |
|
private XPathExpr |
|
Constructor Summary | |
| |
Method Summary | |
void |
|
boolean |
|
protected FunctionContext |
|
protected NamespaceContext |
|
protected VariableContext |
|
String |
|
Object |
|
protected Context |
|
protected ContextSupport |
|
FunctionContext |
|
NamespaceContext |
|
Navigator |
|
Expr |
|
VariableContext |
|
Number |
|
List |
|
protected List |
|
Object |
|
protected Object |
|
void |
|
void |
|
void |
|
String |
|
String |
|
String |
|
private String exprText
Original expression text.
private Navigator navigator
the implementation-specific Navigator for retrieving XML nodes *
private ContextSupport support
the support information and function, namespace and variable contexts
protected BaseXPath(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
public BaseXPath(String xpathExpr, Navigator navigator) throws JaxenException
Construct given an XPath expression string.
- Parameters:
xpathExpr
- the XPath expressionnavigator
- the XML navigator to use
- Throws:
JaxenException
- if there is a syntax error while parsing the expression
public void addNamespace(String prefix, String uri) throws JaxenException
Add a namespace prefix-to-URI mapping for this XPath expression. Namespace prefix-to-URI mappings in an XPath are independent of those used within any document. Only the mapping explicitly added to this XPath will be available for resolving the XPath expression. This is a convenience method for adding mappings to the defaultNamespaceContext
in place for this XPath. If you have installed a customNamespaceContext
that is not aSimpleNamespaceContext
, then this method will throw aJaxenException
.
- Specified by:
- addNamespace in interface XPath
- Parameters:
prefix
- the namespace prefixuri
- the namespace URI
- Throws:
JaxenException
- if theNamespaceContext
used by this XPath is not aSimpleNamespaceContext
public boolean booleanValueOf(Object node) throws JaxenException
Retrieve a boolean-value interpretation of this XPath expression when evaluated against a given context. The boolean-value of the expression is determined per theboolean(..)
function defined in the XPath specification. This means that an expression that selects zero nodes will returnfalse
, while an expression that selects one or more nodes will returntrue
.
- Specified by:
- booleanValueOf in interface XPath
- Parameters:
node
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- the boolean-value of the result of evaluating this expression with the specified context node
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
protected FunctionContext createFunctionContext()
Create a defaultFunctionContext
.
- Returns:
- a default
FunctionContext
protected NamespaceContext createNamespaceContext()
Create a defaultNamespaceContext
.
- Returns:
- a default
NamespaceContext
instance
protected VariableContext createVariableContext()
Create a defaultVariableContext
.
- Returns:
- a default
VariableContext
instance
public String debug()
Returns a string representation of the parse tree.
- Returns:
- a string representation of the parse tree.
public Object evaluate(Object context) 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 aString
,Double
,Boolean
, orList
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 actualDocument
,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.
- Parameters:
context
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- the result of evaluating the XPath expression against the supplied context
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
protected Context getContext(Object node)
Create aContext
wrapper for the provided implementation-specific object.
- Parameters:
node
- the implementation-specific object to be used as the context
- Returns:
- a
Context
wrapper around the object
protected ContextSupport getContextSupport()
Retrieve theContextSupport
aggregation ofNamespaceContext
,FunctionContext
,VariableContext
, andNavigator
.
- Returns:
- aggregate
ContextSupport
for this XPath expression
public FunctionContext getFunctionContext()
Retrieve theFunctionContext
used by this XPath expression. AFunctionContext
is responsible for resolving all function calls used within the expression. If this XPath expression has not previously had aFunctionContext
installed, a new defaultFunctionContext
will be created, installed and returned.
- Specified by:
- getFunctionContext in interface XPath
- Returns:
- the
FunctionContext
used by this expression
- See Also:
FunctionContext
public NamespaceContext getNamespaceContext()
Retrieve theNamespaceContext
used by this XPath expression. ANamespaceContext
is responsible for mapping prefixes used within the expression to namespace URIs. If this XPath expression has not previously had aNamespaceContext
installed, a new defaultNamespaceContext
will be created, installed and returned.
- Specified by:
- getNamespaceContext in interface XPath
- Returns:
- the
NamespaceContext
used by this expression
- See Also:
NamespaceContext
public Navigator getNavigator()
Retrieve the XML object-model-specificNavigator
for us in evaluating this XPath expression.
- Specified by:
- getNavigator in interface XPath
- Returns:
- the implementation-specific
Navigator
public Expr getRootExpr()
Retrieve the root expression of the internal compiled form of this XPath expression. Internally, Jaxen maintains a form of Abstract Syntax Tree (AST) to represent the structure of the XPath expression. This is normally not required during normal consumer-grade usage of Jaxen. This method is provided for hard-core users who wish to manipulate or inspect a tree-based version of the expression.
- Returns:
- the root of the AST of this expression
public VariableContext getVariableContext()
Retrieve theVariableContext
used by this XPath expression. AVariableContext
is responsible for resolving all variables referenced within the expression. If this XPath expression has not previously had aVariableContext
installed, a new defaultVariableContext
will be created, installed and returned.
- Specified by:
- getVariableContext in interface XPath
- Returns:
- the
VariableContext
used by this expression
- See Also:
VariableContext
public Number numberValueOf(Object node) throws JaxenException
Retrieve a number-value interpretation of this XPath expression when evaluated against a given context. The number-value of the expression is determined per thenumber(..)
core function as defined in the XPath specification. This means that if this expression selects multiple nodes, the number-value of the first node is returned.
- Specified by:
- numberValueOf in interface XPath
- Parameters:
node
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- a
Double
indicating the numeric value of evaluating this expression against the specified context
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
public List selectNodes(Object node) throws JaxenException
Select all nodes that are selected by this XPath expression. If multiple nodes match, multiple nodes will be returned. Nodes will be returned in document-order, as defined by the XPath specification. If the expression selects a non-node-set (i.e. a number, boolean, or string) then a List containing just that one object is returned.
- Specified by:
- selectNodes in interface XPath
- Parameters:
node
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- the node-set of all items selected by this XPath expression
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
- See Also:
selectNodesForContext(Context)
protected List selectNodesForContext(Context context) throws JaxenException
Select all nodes that match this XPath expression on the given Context object. If multiple nodes match, multiple nodes will be returned in document-order, as defined by the XPath specification. If the expression selects a non-node-set (i.e. a number, boolean, or string) then a List containing just that one object is returned.
- Parameters:
context
- the Context which gets evaluated
- Returns:
- the node-set of all items selected by this XPath expression
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
public Object selectSingleNode(Object node) throws JaxenException
Select only the first node selected by this XPath expression. If multiple nodes match, only one node will be returned. The selected node will be the first selected node in document-order, as defined by the XPath specification.
- Specified by:
- selectSingleNode in interface XPath
- Parameters:
node
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- the node-set of all items selected by this XPath expression
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
- See Also:
selectNodes(Object)
protected Object selectSingleNodeForContext(Context context) throws JaxenException
Return only the first node that is selected by this XPath expression. If multiple nodes match, only one node will be returned. The selected node will be the first selected node in document-order, as defined by the XPath specification. If the XPath expression selects a double, String, or boolean, then that object is returned.
- Parameters:
context
- the Context against which this expression is evaluated
- Returns:
- the first node in document order of all nodes selected by this XPath expression
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
- See Also:
selectNodesForContext(Context)
public void setFunctionContext(FunctionContext functionContext)
Set aFunctionContext
for use with this XPath expression. AFunctionContext
is responsible for resolving all function calls used within the expression.
- Specified by:
- setFunctionContext in interface XPath
- Parameters:
functionContext
- theFunctionContext
to install for this expression
public void setNamespaceContext(NamespaceContext namespaceContext)
Set aNamespaceContext
for use with this XPath expression. ANamespaceContext
is responsible for translating namespace prefixes within the expression into namespace URIs.
- Specified by:
- setNamespaceContext in interface XPath
- Parameters:
namespaceContext
- theNamespaceContext
to install for this expression
public void setVariableContext(VariableContext variableContext)
Set aVariableContext
for use with this XPath expression. AVariableContext
is responsible for resolving all variables referenced within the expression.
- Specified by:
- setVariableContext in interface XPath
- Parameters:
variableContext
- TheVariableContext
to install for this expression
public String stringValueOf(Object node) throws JaxenException
Retrieves the string-value of the result of evaluating this XPath expression when evaluated against the specified context. The string-value of the expression is determined per thestring(..)
core function defined in the XPath specification. This means that an expression that selects zero nodes will return the empty string, while an expression that selects one-or-more nodes will return the string-value of the first node.
- Specified by:
- stringValueOf in interface XPath
- Parameters:
node
- the node, node-set or Context object for evaluation. This value can be null.
- Returns:
- the string-value of the result of evaluating this expression with the specified context node
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation
public String toString()
Return the original expression text.
- Returns:
- the normalized XPath expression string
public String valueOf(Object node) throws JaxenException
Deprecated. replaced by
stringValueOf(Object)
Returns the XPath string-value of the argument node.
- Parameters:
node
- the node whose value to take
- Returns:
- the XPath string value of this node
- Throws:
JaxenException
- if an XPath error occurs during expression evaluation