org.apache.commons.jexl3

## Interface JexlExpression

-     public interface JexlExpression

  Represents a single JEXL expression.

  This simple interface provides access to the underlying textual expression through `getSourceText()`.

  An expression is different than a script - it is simply a reference to a single expression, not to multiple statements. This implies 'if','for','while','var' and blocks '{'... '}'are not allowed in expressions.

  Do not create classes that implement this interface; delegate or compose instead.

  Since:
    1.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Callable<Object>` | `callable(JexlContext context)` Creates a Callable from this expression.
    `Object` | `evaluate(JexlContext context)` Evaluates the expression with the variables contained in the supplied `JexlContext`.
    `String` | `getParsedText()` Recreates the source text of this expression from the internal syntactic tree.
    `String` | `getSourceText()` Returns the source text of this expression.

- - ### Method Detail

    - #### evaluate

          Object evaluate(JexlContext context)

      Evaluates the expression with the variables contained in the supplied `JexlContext`.
      Parameters:
        `context` - A JexlContext containing variables.
      Returns:
        The result of this evaluation
      Throws:
        `JexlException` - on any error

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

    - #### callable

          Callable<Object> callable(JexlContext context)

      Creates a Callable from this expression.

      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:
        3.1

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