org.apache.commons.jexl3

## Interface JexlScript

-     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

    All Methods Instance Methods Abstract Methods
    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.

- - ### 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

    - #### getUnboundParameters

          String[] getUnboundParameters()

      Gets this script unbound parameters.

      Parameters that haven't been bound by a previous call to curry().

      Returns:
        the parameters or null
      Since:
        3.2

    - #### 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–2022 The Apache Software Foundation. All rights reserved.