|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.icl.saxon.expr.Expression
This class serves two purposes: it is an abstract superclass for different kinds of XPath expression, and it contains a static method to invoke the expression parser
Field Summary | |
protected StaticContext |
staticContext
|
Constructor Summary | |
Expression()
|
Method Summary | |
boolean |
containsReferences()
Determine whether the expression contains any references to variables |
abstract void |
display(int level)
Diagnostic print of expression structure |
NodeEnumeration |
enumerate(Context context,
boolean sorted)
Return an enumeration of nodes in a nodeset. |
abstract Value |
evaluate(Context context)
Evaluate an expression. |
boolean |
evaluateAsBoolean(Context context)
Evaluate an expression as a Boolean. The result of x.evaluateAsBoolean(c) must be equivalent to x.evaluate(c).asBoolean(); but optimisations are possible when it is known that a boolean result is required, especially in the case of a NodeSet. |
NodeSetValue |
evaluateAsNodeSet(Context context)
Evaluate an expression as a NodeSet. |
double |
evaluateAsNumber(Context context)
Evaluate an expression as a Number. The result of x.evaluateAsNumber(c) must be equivalent to x.evaluate(c).asNumber(); but optimisations are possible when it is known that a numeric result is required, especially in the case of a NodeSet. |
java.lang.String |
evaluateAsString(Context context)
Evaluate an expression as a String. The result of x.evaluateAsString(c) must be equivalent to x.evaluate(c).asString(); but optimisations are possible when it is known that a string result is required, especially in the case of a NodeSet. |
abstract int |
getDataType()
Determine the data type of the expression, if possible |
abstract int |
getDependencies()
Determine which aspects of the context the expression depends on. |
StaticContext |
getStaticContext()
Determine the static context used when the expression was parsed |
protected static java.lang.String |
indent(int level)
Construct indent string, for diagnostic output |
boolean |
isContextDocumentNodeSet()
Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node. |
static Expression |
make(java.lang.String expression,
StaticContext env)
Parse an expression |
void |
outputStringValue(Outputter out,
Context context)
Evaluate an expression as a String and write the result to the specified outputter. |
abstract Expression |
reduce(int dependencies,
Context context)
Perform a partial evaluation of the expression, by eliminating specified dependencies on the context. |
void |
setStaticContext(StaticContext sc)
Set the static context used when the expression was parsed |
Expression |
simplify()
Simplify an expression. |
boolean |
usesCurrent()
Determine whether the expression uses the current() function. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected StaticContext staticContext
Constructor Detail |
public Expression()
Method Detail |
public static Expression make(java.lang.String expression, StaticContext env) throws XPathException
expression
- The expression (as a character string)env
- An object giving information about the compile-time context of the expressionpublic Expression simplify() throws XPathException
public final void setStaticContext(StaticContext sc)
public final StaticContext getStaticContext()
public boolean containsReferences() throws XPathException
public abstract Value evaluate(Context context) throws XPathException
context
- The context in which the expression is to be evaluatedpublic boolean evaluateAsBoolean(Context context) throws XPathException
context
- The context in which the expression is to be evaluatedpublic double evaluateAsNumber(Context context) throws XPathException
context
- The context in which the expression is to be evaluatedpublic java.lang.String evaluateAsString(Context context) throws XPathException
context
- The context in which the expression is to be evaluatedpublic void outputStringValue(Outputter out, Context context) throws javax.xml.transform.TransformerException
out
- The required outputtercontext
- The context in which the expression is to be evaluatedpublic NodeSetValue evaluateAsNodeSet(Context context) throws XPathException
context
- The context in which the expression is to be evaluatedXPathException
- when the expression does not return a nodeset.public NodeEnumeration enumerate(Context context, boolean sorted) throws XPathException
context
- The context in which the expression is to be evaluatedsorted
- Indicates whether the nodes are required in document order. If
this is false, they may come in any order, but there will be no duplicates.XPathException
- when the expression does not return a nodeset.public abstract int getDataType()
public boolean isContextDocumentNodeSet()
public boolean usesCurrent()
public abstract int getDependencies()
public abstract Expression reduce(int dependencies, Context context) throws XPathException
dependencies
- The dependencies to be removed, e.g. Context.VARIABLEScontext
- The context to be used for the partial evaluationpublic abstract void display(int level)
protected static java.lang.String indent(int level)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |