Class Closure
java.lang.Object
org.apache.commons.jexl3.internal.Script
org.apache.commons.jexl3.internal.Closure
- All Implemented Interfaces:
JexlExpression
,JexlScript
A Script closure.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.commons.jexl3.internal.Script
Script.Callable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Frame
The frame.protected final JexlOptions
The options. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Closure
(Interpreter theCaller, ASTJexlLambda lambda) Creates a closure.protected
Creates a curried version of a script. -
Method Summary
Modifier and TypeMethodDescriptioncallable
(JexlContext context, Object... args) Creates a Callable from this script.boolean
evaluate
(JexlContext context) Evaluates the expression with the variables contained in the suppliedJexlContext
.execute
(JexlContext context) Executes the script with the variables contained in the suppliedJexlContext
.execute
(JexlContext context, Object... args) Executes the script with the variables contained in the suppliedJexlContext
and a set of arguments corresponding to the parameters used during parsing.String[]
Gets this script unbound parameters.int
hashCode()
void
setCaptured
(int symbol, Object value) Sets the captured index of a given symbol, ie the target index of a parent captured symbol in this closure's frame.Methods inherited from class org.apache.commons.jexl3.internal.Script
callable, checkCacheVersion, createFrame, createInterpreter, createInterpreter, curry, getCapturedVariables, getEngine, getFeatures, getInfo, getLocalVariables, getParameters, getParsedText, getParsedText, getPragmas, getScript, getSourceText, getVariables, toString
-
Field Details
-
frame
The frame. -
options
The options.
-
-
Constructor Details
-
Closure
Creates a closure.- Parameters:
theCaller
- the calling interpreterlambda
- the lambda
-
Closure
Creates a curried version of a script.- Parameters:
base
- the base scriptargs
- the script arguments
-
-
Method Details
-
hashCode
public int hashCode() -
equals
-
getUnboundParameters
Description copied from interface:JexlScript
Gets this script unbound parameters.Parameters that haven't been bound by a previous call to curry().
- Specified by:
getUnboundParameters
in interfaceJexlScript
- Overrides:
getUnboundParameters
in classScript
- Returns:
- the parameters or null
-
setCaptured
Sets the captured index of a given symbol, ie the target index of a parent captured symbol in this closure's frame.This is meant to allow a locally defined function to "see" and call itself as a local (captured) variable; in other words, this allows recursive call of a function.
- Parameters:
symbol
- the symbol index (in the caller of this closure)value
- the value to set in the local frame
-
evaluate
Description copied from interface:JexlExpression
Evaluates the expression with the variables contained in the suppliedJexlContext
.- Specified by:
evaluate
in interfaceJexlExpression
- Overrides:
evaluate
in classScript
- Parameters:
context
- A JexlContext containing variables.- Returns:
- The result of this evaluation
-
execute
Description copied from interface:JexlScript
Executes the script with the variables contained in the suppliedJexlContext
.- Specified by:
execute
in interfaceJexlScript
- Overrides:
execute
in classScript
- Parameters:
context
- A JexlContext containing variables.- Returns:
- The result of this script, usually the result of the last statement.
-
execute
Description copied from interface:JexlScript
Executes the script with the variables contained in the suppliedJexlContext
and a set of arguments corresponding to the parameters used during parsing.- Specified by:
execute
in interfaceJexlScript
- Overrides:
execute
in classScript
- Parameters:
context
- A JexlContext containing variables.args
- the arguments- Returns:
- The result of this script, usually the result of the last statement.
-
callable
Description copied from class:Script
Creates a Callable from this 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.
- Specified by:
callable
in interfaceJexlScript
- Overrides:
callable
in classScript
- Parameters:
context
- the contextargs
- the script arguments- Returns:
- the callable
-