public class Closure extends Script
Script.Curried
Modifier and Type | Field and Description |
---|---|
protected Scope.Frame |
frame
The frame.
|
Modifier | Constructor and Description |
---|---|
protected |
Closure(Interpreter theCaller,
ASTJexlLambda lambda)
Creates a closure.
|
Modifier and Type | Method and Description |
---|---|
Callable<Object> |
callable(JexlContext context,
Object... args)
Creates a Callable from this script.
|
boolean |
equals(Object obj) |
Object |
evaluate(JexlContext context)
Evaluates the expression with the variables contained in the
supplied
JexlContext . |
Object |
execute(JexlContext context)
Executes the script with the variables contained in the
supplied
JexlContext . |
Object |
execute(JexlContext context,
Object... args)
Executes the script with the variables contained in the
supplied
JexlContext and a set of arguments corresponding to the
parameters used during parsing. |
String |
getParsedText()
Recreates the source text of this expression from the internal syntactic tree.
|
int |
hashCode() |
void |
setHoisted(int symbol,
Object value)
Sets the hoisted index of a given symbol, ie the target index of a parent hoisted symbol in this closure's frame.
|
String |
toString() |
callable, checkCacheVersion, createFrame, createInterpreter, curry, getEngine, getLocalVariables, getParameters, getParsedText, getPragmas, getSourceText, getVariables
protected final Scope.Frame frame
protected Closure(Interpreter theCaller, ASTJexlLambda lambda)
theCaller
- the calling interpreterlambda
- the lambdapublic String getParsedText()
Script
getParsedText
in interface JexlExpression
getParsedText
in interface JexlScript
getParsedText
in class Script
public void setHoisted(int symbol, Object value)
This is meant to allow a locally defined function to "see" and call itself as a local (hoisted) variable; in other words, this allows recursive call of a function.
symbol
- the symbol index (in the caller of this closure)value
- the value to set in the local framepublic Object evaluate(JexlContext context)
Script
JexlContext
.evaluate
in interface JexlExpression
evaluate
in class Script
context
- A JexlContext containing variables.public Object execute(JexlContext context)
Script
JexlContext
.execute
in interface JexlScript
execute
in class Script
context
- A JexlContext containing variables.public Object execute(JexlContext context, Object... args)
Script
JexlContext
and a set of arguments corresponding to the
parameters used during parsing.execute
in interface JexlScript
execute
in class Script
context
- A JexlContext containing variables.args
- the argumentspublic Callable<Object> callable(JexlContext context, Object... args)
Script
This allows to submit it to an executor pool and provides support for asynchronous calls.
The interpreter will handle interruption/cancellation gracefully if needed.
callable
in interface JexlScript
callable
in class Script
context
- the contextargs
- the script argumentsCopyright © 2001–2015 The Apache Software Foundation. All rights reserved.