org.apache.commons.jexl3

## Class JxltEngine

- java.lang.Object
- - org.apache.commons.jexl3.JxltEngine

-     public abstract class JxltEngine
      extends Object

  A simple "JeXL Template" engine.

  At the base is an evaluator similar to the Unified EL evaluator used in JSP/JSF based on JEXL. At the top is a template engine inspired by Velocity that uses JEXL (instead of OGNL/VTL) as the scripting language.

  The evaluator is intended to be used in configuration modules, XML based frameworks or JSP taglibs and facilitate the implementation of expression evaluation.

  The template engine is intended to output any form of text; html, XML, CSV...

  Since:
    3.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `JxltEngine.Exception` The sole type of (runtime) exception the JxltEngine can throw.
    `static interface` | `JxltEngine.Expression` A unified expression that can mix immediate, deferred and nested sub-expressions as well as string constants; The "immediate" syntax is of the form `"...${jexl-expr}..."` The "deferred" syntax is of the form `"...#{jexl-expr}..."` The "nested" syntax is of the form `"...#{...${jexl-expr0}...}..."` The "composite" syntax is of the form `"...${jexl-expr0}...`
    `static interface` | `JxltEngine.Template` A template is a JEXL script that evaluates by writing its content through a Writer.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JxltEngine()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `clearCache()` Clears the cache.
    `abstract JxltEngine.Expression` | `createExpression(JexlInfo info, String expression)` Creates a a `JxltEngine.Expression` from an expression string.
    `JxltEngine.Expression` | `createExpression(String expression)` Creates a a `JxltEngine.Expression` from an expression string.
    `JxltEngine.Template` | `createTemplate(JexlInfo info, String source)` Creates a new template.
    `abstract JxltEngine.Template` | `createTemplate(JexlInfo info, String prefix, Reader source, String... parms)` Creates a new template.
    `JxltEngine.Template` | `createTemplate(JexlInfo info, String source, String... parms)` Creates a new template.
    `JxltEngine.Template` | `createTemplate(String source)` Creates a new template.
    `JxltEngine.Template` | `createTemplate(String prefix, Reader source, String... parms)` Creates a new template.
    `JxltEngine.Template` | `createTemplate(String source, String... parms)` Creates a new template.
    `abstract JexlEngine` | `getEngine()` Gets the `JexlEngine` underlying this template engine.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### JxltEngine

          public JxltEngine()

  - ### Method Detail

    - #### createExpression

          public JxltEngine.Expression createExpression(String expression)

      Creates a a `JxltEngine.Expression` from an expression string. Uses and fills up the expression cache if any.

      If the underlying JEXL engine is silent, errors will be logged through its logger as warnings.

      Parameters:
        `expression` - the `JxltEngine.Template` string expression
      Returns:
        the `JxltEngine.Expression`, null if silent and an error occurred
      Throws:
        `JxltEngine.Exception` - if an error occurs and the `JexlEngine` is not silent

    - #### createExpression

          public abstract JxltEngine.Expression createExpression(JexlInfo info,
                                                                 String expression)

      Creates a a `JxltEngine.Expression` from an expression string. Uses and fills up the expression cache if any.

      If the underlying JEXL engine is silent, errors will be logged through its logger as warnings.

      Parameters:
        `info` - the `JexlInfo` source information
        `expression` - the `JxltEngine.Template` string expression
      Returns:
        the `JxltEngine.Expression`, null if silent and an error occurred
      Throws:
        `JxltEngine.Exception` - if an error occurs and the `JexlEngine` is not silent

    - #### createTemplate

          public abstract JxltEngine.Template createTemplate(JexlInfo info,
                                                             String prefix,
                                                             Reader source,
                                                             String... parms)

      Creates a new template.
      Parameters:
        `info` - the jexl info (file, line, column)
        `prefix` - the directive prefix
        `source` - the source
        `parms` - the parameter names
      Returns:
        the template

    - #### createTemplate

          public JxltEngine.Template createTemplate(JexlInfo info,
                                                    String source,
                                                    String... parms)

      Creates a new template.
      Parameters:
        `info` - the source info
        `parms` - the parameter names
        `source` - the source
      Returns:
        the template

    - #### createTemplate

          public JxltEngine.Template createTemplate(JexlInfo info,
                                                    String source)

      Creates a new template.
      Parameters:
        `info` - the source info
        `source` - the source
      Returns:
        the template

    - #### createTemplate

          public JxltEngine.Template createTemplate(String prefix,
                                                    Reader source,
                                                    String... parms)

      Creates a new template.
      Parameters:
        `prefix` - the directive prefix
        `source` - the source
        `parms` - the parameter names
      Returns:
        the template

    - #### createTemplate

          public JxltEngine.Template createTemplate(String source,
                                                    String... parms)

      Creates a new template.
      Parameters:
        `source` - the source
        `parms` - the parameter names
      Returns:
        the template

    - #### createTemplate

          public JxltEngine.Template createTemplate(String source)

      Creates a new template.
      Parameters:
        `source` - the source
      Returns:
        the template

    - #### getEngine

          public abstract JexlEngine getEngine()

      Gets the `JexlEngine` underlying this template engine.
      Returns:
        the JexlEngine

    - #### clearCache

          public abstract void clearCache()

      Clears the cache.

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