|
JDOM 0.0.5-BETA |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jdom2.xpath.util.AbstractXPathCompiled<T>
T
- The generic type of the returned values.public abstract class AbstractXPathCompiled<T>
A mostly-implemented XPathExpression that only needs two methods to be
implemented in order to satisfy the complete API. Subclasses of this
MUST correctly override the clone() method which in turn
should call super.clone();
Constructor Summary | |
---|---|
AbstractXPathCompiled(java.lang.String query,
Filter<T> filter,
java.util.Map<java.lang.String,java.lang.Object> variables,
Namespace[] namespaces)
Construct an XPathExpression. |
Method Summary | |
---|---|
XPathExpression<T> |
clone()
Subclasses of this AbstractXPathCompile class must call super.clone() in their clone methods! |
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. |
protected abstract java.util.List<?> |
evaluateRawAll(java.lang.Object context)
This is the raw expression evaluator to be implemented by the back-end XPath library. |
protected abstract java.lang.Object |
evaluateRawFirst(java.lang.Object context)
This is the raw expression evaluator to be implemented by the back-end XPath library. |
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. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public AbstractXPathCompiled(java.lang.String query, Filter<T> filter, java.util.Map<java.lang.String,java.lang.Object> variables, Namespace[] namespaces)
query
- The XPath queryfilter
- The coercion filter.variables
- A map of variables.namespaces
- The namespaces referenced from the query.for conditions which throw
{@link NullPointerException} or {@link IllegalArgumentException}.
Method Detail |
---|
public XPathExpression<T> clone()
This would be a sample clone method from a subclass:
Here's the documentation from
public XPathExpression<T> clone() {
@SuppressWarnings("unchecked")
final MyXPathCompiled<T> ret = (MyXPathCompiled<T>)super.clone();
// change any fields that need to be cloned.
....
return ret;
}
XPathExpression.clone()
Create a new instance of this XPathExpression that duplicates this instance.
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.
clone
in interface XPathExpression<T>
clone
in class java.lang.Object
public final java.lang.String getExpression()
XPathExpression
getExpression
in interface XPathExpression<T>
public final java.lang.String getNamespace(java.lang.String prefix)
XPathExpression
getNamespace
in interface XPathExpression<T>
prefix
- The prefix to select the Namespace URI for.
public final java.lang.Object getVariable(java.lang.String uri, java.lang.String name)
XPathExpression
getVariable
in interface XPathExpression<T>
uri
- the Namespace URI in which the variable name was declared.name
- the variable name to retrieve the value for.
public java.lang.Object setVariable(java.lang.String uri, java.lang.String name, java.lang.Object value)
XPathExpression
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.
setVariable
in interface XPathExpression<T>
uri
- the Namespace URI in which the variable name is declared.name
- The variable to change.value
- The new value to set.
public final Filter<T> getFilter()
XPathExpression
Filter<T>
used to coerce the raw XPath results in to
the correct Generic type.
getFilter
in interface XPathExpression<T>
Filter<T>
used to coerce the raw XPath results in to
the correct Generic type.public java.util.List<T> evaluate(java.lang.Object context)
XPathExpression
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 XPathExpression.diagnose(Object, boolean)
method to
have access to both the raw XPath results as well as the filtered and
generically typed results.
evaluate
in interface XPathExpression<T>
context
- The context against which to process the query.
public T evaluateFirst(java.lang.Object context)
XPathExpression
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.
evaluateFirst
in interface XPathExpression<T>
context
- The context against which to evaluate the expression. This will
typically be a Document, Element, or some other JDOM object.
public XPathDiagnostic<T> diagnose(java.lang.Object context, boolean firstonly)
XPathExpression
diagnose
in interface XPathExpression<T>
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.public java.lang.String toString()
toString
in class java.lang.Object
protected abstract java.util.List<?> evaluateRawAll(java.lang.Object context)
context
- The context against which to evaluate the query
protected abstract java.lang.Object evaluateRawFirst(java.lang.Object context)
Only the first value in the result will be processed (if any).
context
- The context against which to evaluate the query
|
JDOM 0.0.5-BETA |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |