org.apache.commons.jexl3
Interface JexlScript

All Known Implementing Classes:
Closure, Script, Script.Curried

public interface JexlScript

A JEXL Script.

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.

Since:
1.1

Method Summary
 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.
 Set<List<String>> getVariables()
          Gets this script variables.
 

Method Detail

getSourceText

String getSourceText()
Returns the source text of this expression.

Returns:
the source text

getParsedText

String getParsedText()
Recreates the source text of this expression from the internal syntactic tree.

Returns:
the source text

getParsedText

String getParsedText(int indent)
Recreates the source text of this expression from the internal syntactic tree.

Parameters:
indent - the number of spaces for indentation, 0 meaning no indentation
Returns:
the source text

execute

Object execute(JexlContext context)
Executes the script with the variables contained in the supplied JexlContext.

Parameters:
context - A JexlContext containing variables.
Returns:
The result of this script, usually the result of the last statement.

execute

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.

Parameters:
context - A JexlContext containing variables.
args - the arguments
Returns:
The result of this script, usually the result of the last statement.
Since:
2.1

getParameters

String[] getParameters()
Gets this script parameters.

Returns:
the parameters or null
Since:
2.1

getLocalVariables

String[] getLocalVariables()
Gets this script local variables.

Returns:
the local variables or null
Since:
2.1

getVariables

Set<List<String>> getVariables()
Gets this script variables.

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.

Returns:
the variables or null
Since:
2.1

getPragmas

Map<String,Object> getPragmas()
Gets this script pragmas.

Returns:
the (non null, may be empty) pragmas map

callable

Callable<Object> callable(JexlContext context)
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.

Parameters:
context - the context
Returns:
the callable
Since:
2.1

callable

Callable<Object> callable(JexlContext context,
                          Object... args)
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.

Parameters:
context - the context
args - the script arguments
Returns:
the callable
Since:
2.1

curry

JexlScript curry(Object... args)
Curries this script, returning a script with bound arguments.

If this script does not declare parameters or if all of them are already bound, no error is generated and this script is returned.

Parameters:
args - the arguments to bind
Returns:
the curried script or this script if no binding can occur


Copyright © 2001–2017 The Apache Software Foundation. All rights reserved.