Package org.zkoss.xel

## Class Expressions

- java.lang.Object
- - org.zkoss.xel.Expressions

-     public class Expressions
      extends java.lang.Object

  Utilities to use XEL.
  Since:
    3.0.0
  Author:
    tomyeh

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Expression` | `DUMMY_EXPRESSION` | An dummy expression that does nothing.
    `static FunctionMapper` | `EMPTY_MAPPER` | An empty function mapper, i.e., it has no function defined at all.
    `static VariableResolver` | `EMPTY_RESOLVER` | An empty variable resolver, i.e., it has no variable defined at all.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Expressions()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.lang.Object` | `evaluate​(XelContext ctx, java.lang.String expression, java.lang.Class<?> expectedType)` | Evaluates an expression.
    `static java.lang.Class<? extends ExpressionFactory>` | `getExpressionFactoryClass()` | Returns the implementation of the expression factory that is used by the whole system, or null to use the system default.
    `static ExpressionFactory` | `newExpressionFactory()` | Instantiates an instance of `ExpressionFactory`.
    `static ExpressionFactory` | `newExpressionFactory​(java.lang.Class<? extends ExpressionFactory> expfcls)` | Instantiates an instance of `ExpressionFactory`.
    `static void` | `setExpressionFactoryClass​(java.lang.Class<? extends ExpressionFactory> expfcls)` | Sets the implementation of the expression factory that shall be used by the whole system, or null to use the system default.

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

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

- - ### Field Detail

    - #### EMPTY_MAPPER

          public static final FunctionMapper EMPTY_MAPPER

      An empty function mapper, i.e., it has no function defined at all. It is serializable.

    - #### EMPTY_RESOLVER

          public static final VariableResolver EMPTY_RESOLVER

      An empty variable resolver, i.e., it has no variable defined at all. It is serializable.

    - #### DUMMY_EXPRESSION

          public static final Expression DUMMY_EXPRESSION

      An dummy expression that does nothing. It is usually used as a flag to denote exceptional cases. It it serializable.

  - ### Constructor Detail

    - #### Expressions

          public Expressions()

  - ### Method Detail

    - #### newExpressionFactory

          public static final ExpressionFactory newExpressionFactory()
                                                              throws XelException

      Instantiates an instance of `ExpressionFactory`.

      The default class is `ELFactory`, which supports EL 2.0. If you run under JVM 1.5 or later and deploy zel.jar in your class path, the default class is then `ELFactory` which supports EL 2.2. To override it, you can specify the class by calling `setExpressionFactoryClass(java.lang.Class<? extends org.zkoss.xel.ExpressionFactory>)`, or use `newExpressionFactory(Class)` instead.

      For the ZK user, you can override it with zk.xml or org.zkoss.zk.ui.util.Configuration.

      Throws:
        `XelException` - if the specified class failed to load, or instantiate.

    - #### newExpressionFactory

          public static final ExpressionFactory newExpressionFactory​(java.lang.Class<? extends ExpressionFactory> expfcls)

      Instantiates an instance of `ExpressionFactory`.

      The default class is `ELFactory`, which supports EL 2.0. If you run under JVM 1.5 or later and deploy zel.jar in your class path, the default class is then `ELFactory` which supports EL 2.2. To override it, you can specify the class by calling `setExpressionFactoryClass(java.lang.Class<? extends org.zkoss.xel.ExpressionFactory>)`, or specifying the class you prefer in the expfcls argument.

      For the ZK user, you can override it with zk.xml or org.zkoss.zk.ui.util.Configuration.

      Parameters:
        `expfcls` - the class that implements `ExpressionFactory`, or null to use the default.
      Throws:
        `XelException` - if the specified class failed to load, or instantiate.

    - #### evaluate

          public static final java.lang.Object evaluate​(XelContext ctx,
                                                        java.lang.String expression,
                                                        java.lang.Class<?> expectedType)
                                                 throws XelException

      Evaluates an expression.
      Parameters:
        `ctx` - the context information to evaluate the expression It can be null, in which case no functions are supported for this invocation.
        `expression` - the expression to be evaluated. Note: the expression is enclosed with ${ and }, regardless of what implementation is used.
        `expectedType` - the expected type of the result of the evaluation
      Throws:
        `XelException`

    - #### setExpressionFactoryClass

          public static final void setExpressionFactoryClass​(java.lang.Class<? extends ExpressionFactory> expfcls)

      Sets the implementation of the expression factory that shall be used by the whole system, or null to use the system default.

      Default: null - it means `ELFactory`, which supports EL 2.0. If you run under JVM 1.5 or later and deploy zel.jar in your class path, the default class is then `ELFactory` which supports EL 2.2.

      Note: you can only specify an implementation that is compatible with JSP EL here, since all built-in pages depend on it.

      Parameters:
        `expfcls` - the implementation class, or null to use the default. Note: expfcls must implement `ExpressionFactory`. If null, the system default is used.

    - #### getExpressionFactoryClass

          public static final java.lang.Class<? extends ExpressionFactory> getExpressionFactoryClass()

      Returns the implementation of the expression factory that is used by the whole system, or null to use the system default.
      See Also:
        `setExpressionFactoryClass(java.lang.Class<? extends org.zkoss.xel.ExpressionFactory>)`