|
JDOM2 0.0.2-BETA |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
T - The generic type of the results of the XPath query after being
processed by the JDOM Filter<T>public interface XPathExpression<T>
XPathExpression is a representation of a compiled XPath query and any Namespace or variable references the query may require.
Once an XPathExpression is created, the values associated with variable names can be changed. But new variables may not be added.
XPathExpression is not thread-safe. XPath libraries allow variable values to change between calls to their query routines, but require that the variable value is constant for the duration of any particular evaluation. It is easier to simply have separate XPathExpression instances in each thread than it is to manage the synchronization of a single instance. XPathExpression thus supports Cloneable to easily create another XPathExpression instance. It is the responsibility of the JDOM caller to ensure appropriate synchronisation of the XPathExpression if it is accessed from multiple threads.
| Method Summary | |
|---|---|
XPathExpression<T> |
clone()
Create a new instance of this XPathExpression that duplicates this instance. |
XPathDiagnostic<T> |
diagnose(java.lang.Object context,
boolean firstonly)
Evaluate the XPath query against the supplied context, but return additional data which may be useful for diagnosing problems with XPath queries. |
java.util.List<T> |
evaluate(java.lang.Object context)
Process the compiled XPathExpression against the specified context. |
T |
evaluateFirst(java.lang.Object context)
Return the first value in the XPath query result set type-cast to the return type of this XPathExpression. |
java.lang.String |
getExpression()
Get the XPath expression |
Filter<T> |
getFilter()
Get the Filter<T> used to coerce the raw XPath results in to
the correct Generic type. |
java.lang.String |
getNamespace(java.lang.String prefix)
Get the Namespace URI associated with a given prefix. |
java.lang.Object |
getVariable(java.lang.String uri,
java.lang.String name)
Get the variable value associated to the given variable name (namespace aware). |
java.lang.Object |
setVariable(java.lang.String uri,
java.lang.String name,
java.lang.Object value)
Change the defined value for a variable to some new value. |
| Method Detail |
|---|
XPathExpression<T> clone()
The 'cloned' instance will have the same XPath query, namespace declarations, and variables. Changing a value associated with a variable on the cloned instance will not change this instance's values, and it is safe to run the evaluate methods on the cloned copy at the same time as this copy.
java.lang.String getExpression()
java.lang.String getNamespace(java.lang.String prefix)
prefix - The prefix to select the Namespace URI for.
java.lang.IllegalArgumentException - if that prefix is not defined.
java.lang.Object setVariable(java.lang.String uri,
java.lang.String name,
java.lang.Object value)
The value of the variable may be null. Some XPath libraries support a null value, and if the library that this expression is for does not support a null value it should be translated to something meaningful for that library, typically the empty string.
uri - the Namespace URI in which the variable name is declared.name - The variable to change.value - The new value to set.
java.lang.NullPointerException - if name or uri is null
java.lang.IllegalArgumentException - if name is not already a variable.
java.lang.Object getVariable(java.lang.String uri,
java.lang.String name)
uri - the Namespace URI in which the variable name was declared.name - the variable name to retrieve the value for.
java.lang.NullPointerException - if name or uri is null
java.lang.IllegalArgumentException - if that variable name is not defined.Filter<T> getFilter()
Filter<T> used to coerce the raw XPath results in to
the correct Generic type.
Filter<T> used to coerce the raw XPath results in to
the correct Generic type.java.util.List<T> evaluate(java.lang.Object context)
In the JDOM2 XPath API the results of the raw XPath query are processed
by the attached Filter<T> instance to coerce the results in to
the correct generic type for this XPathExpression. The Filter process may
cause some XPath results to be removed from the final results. You may
instead want to call the diagnose(Object, boolean) method to
have access to both the raw XPath results as well as the filtered and
generically typed results.
context - The context against which to process the query.
java.lang.NullPointerException - if the context is null
java.lang.IllegalStateException - if the expression is not runnable or if the context node is not
appropriate for the expression.T evaluateFirst(java.lang.Object context)
The concept of the 'first' result is applied before any JDOM Filter is applied. Thus, if the underlying XPath query has some results, the first result is sent through the filter. If it matches it is returned, if it does not match, then null is returned (even if some subsequent result underlying XPath result would pass the filter).
This allows the XPath implementation to optimise the evaluateFirst method by potentially using 'short-circuit' conditions in the evaluation.
context - The context against which to evaluate the expression. This will
typically be a Document, Element, or some other JDOM object.
java.lang.NullPointerException - if the context is null
java.lang.IllegalStateException - if the expression is not runnable or if the context node is not
appropriate for the expression.
XPathDiagnostic<T> diagnose(java.lang.Object context,
boolean firstonly)
context - The context against which to run the query.firstonly - Indicate whether the XPath expression can be terminated after the
first successful result value.
XPathDiagnostic instance.
java.lang.NullPointerException - if the context is null
java.lang.IllegalStateException - if the expression is not runnable or if the context node is not
appropriate for the expression.
|
JDOM2 0.0.2-BETA |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||