public interface JexlScript
A script is some valid JEXL syntax to be executed with a given set of JexlContext
variables.
A script is a group of statements, separated by semicolons.
The statements can be blocks
(curly braces containing code),
Control statements such as if
and while
as well as expressions and assignment statements.
Do not create classes that implement this interface; delegate or compose instead.
Modifier and Type | Method and Description |
---|---|
Callable<Object> |
callable(JexlContext context)
Creates a Callable from this script.
|
Callable<Object> |
callable(JexlContext context,
Object... args)
Creates a Callable from this script.
|
JexlScript |
curry(Object... args)
Curries this script, returning a script with bound arguments.
|
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[] |
getLocalVariables()
Gets this script local variables.
|
String[] |
getParameters()
Gets this script parameters.
|
String |
getParsedText()
Recreates the source text of this expression from the internal syntactic tree.
|
String |
getParsedText(int indent)
Recreates the source text of this expression from the internal syntactic tree.
|
Map<String,Object> |
getPragmas()
Gets this script pragmas.
|
String |
getSourceText()
Returns the source text of this expression.
|
String[] |
getUnboundParameters()
Gets this script unbound parameters.
|
Set<List<String>> |
getVariables()
Gets this script variables.
|
String getSourceText()
String getParsedText()
String getParsedText(int indent)
indent
- the number of spaces for indentation, 0 meaning no indentationObject execute(JexlContext context)
JexlContext
.context
- A JexlContext containing variables.Object execute(JexlContext context, Object... args)
JexlContext
and a set of arguments corresponding to the
parameters used during parsing.context
- A JexlContext containing variables.args
- the argumentsString[] getParameters()
String[] getUnboundParameters()
Parameters that haven't been bound by a previous call to curry().
String[] getLocalVariables()
Set<List<String>> getVariables()
Note that since variables can be in an ant-ish form (ie foo.bar.quux), each variable is returned as a list of strings where each entry is a fragment of the variable ({"foo", "bar", "quux"} in the example.
Map<String,Object> getPragmas()
Callable<Object> callable(JexlContext context)
This allows to submit it to an executor pool and provides support for asynchronous calls.
The interpreter will handle interruption/cancellation gracefully if needed.
context
- the contextCallable<Object> callable(JexlContext context, Object... args)
This allows to submit it to an executor pool and provides support for asynchronous calls.
The interpreter will handle interruption/cancellation gracefully if needed.
context
- the contextargs
- the script argumentsJexlScript curry(Object... args)
If this script does not declare parameters or if all of them are already bound, no error is generated and this script is returned.
args
- the arguments to bindCopyright © 2001–2022 The Apache Software Foundation. All rights reserved.