Package org.zkoss.zel

## Class ExpressionFactory

- java.lang.Object
- - org.zkoss.zel.ExpressionFactory

- Direct Known Subclasses:
    `ExpressionFactoryImpl`

      public abstract class ExpressionFactory
      extends java.lang.Object

  Since:
    2.1

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract java.lang.Object` | `coerceToType​(java.lang.Object obj, java.lang.Class<?> expectedType)` | Coerce the supplied object to the requested type.
    `abstract MethodExpression` | `createMethodExpression​(ELContext context, java.lang.String expression, java.lang.Class<?> expectedReturnType, java.lang.Class<?>[] expectedParamTypes)` | Create a new method expression instance.
    `abstract ValueExpression` | `createValueExpression​(java.lang.Object instance, java.lang.Class<?> expectedType)` |
    `abstract ValueExpression` | `createValueExpression​(ELContext context, java.lang.String expression, java.lang.Class<?> expectedType)` | Create a new value expression.
    `java.util.Map<java.lang.String,​java.lang.reflect.Method>` | `getInitFunctionMap()` |
    `ELResolver` | `getStreamELResolver()` |
    `static ExpressionFactory` | `newInstance()` | Create a new `ExpressionFactory`.
    `static ExpressionFactory` | `newInstance​(java.util.Properties properties)` | Create a new `ExpressionFactory` passing in the provided `Properties`.

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

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

- - ### Constructor Detail

    - #### ExpressionFactory

          public ExpressionFactory()

  - ### Method Detail

    - #### newInstance

          public static ExpressionFactory newInstance()

      Create a new `ExpressionFactory`. The class to use is org.zkoss.zel.impl.ExpressionFactoryImpl.
      Returns:
        the new ExpressionFactory

    - #### newInstance

          public static ExpressionFactory newInstance​(java.util.Properties properties)

      Create a new `ExpressionFactory` passing in the provided `Properties`. Search order is the same as `newInstance()`.
      Parameters:
        `properties` - the properties to be passed to the new instance (may be null)
      Returns:
        the new ExpressionFactory

    - #### createValueExpression

          public abstract ValueExpression createValueExpression​(ELContext context,
                                                                java.lang.String expression,
                                                                java.lang.Class<?> expectedType)

      Create a new value expression.
      Parameters:
        `context` - The EL context for this evaluation
        `expression` - The String representation of the value expression
        `expectedType` - The expected type of the result of evaluating the expression
      Returns:
        A new value expression formed from the input parameters
      Throws:
        `java.lang.NullPointerException` - If the expected type is `null`
        `ELException` - If there are syntax errors in the provided expression

    - #### createValueExpression

          public abstract ValueExpression createValueExpression​(java.lang.Object instance,
                                                                java.lang.Class<?> expectedType)

    - #### createMethodExpression

          public abstract MethodExpression createMethodExpression​(ELContext context,
                                                                  java.lang.String expression,
                                                                  java.lang.Class<?> expectedReturnType,
                                                                  java.lang.Class<?>[] expectedParamTypes)

      Create a new method expression instance.
      Parameters:
        `context` - The EL context for this evaluation
        `expression` - The String representation of the method expression
        `expectedReturnType` - The expected type of the result of invoking the method
        `expectedParamTypes` - The expected types of the input parameters
      Returns:
        A new method expression formed from the input parameters.
      Throws:
        `java.lang.NullPointerException` - If the expected parameters types are `null`
        `ELException` - If there are syntax errors in the provided expression

    - #### coerceToType

          public abstract java.lang.Object coerceToType​(java.lang.Object obj,
                                                        java.lang.Class<?> expectedType)

      Coerce the supplied object to the requested type.
      Parameters:
        `obj` - The object to be coerced
        `expectedType` - The type to which the object should be coerced
      Returns:
        An instance of the requested type.
      Throws:
        `ELException` - If the conversion fails

    - #### getStreamELResolver

          public ELResolver getStreamELResolver()

      Returns:
        This default implementation returns null
      Since:
        EL 3.0

    - #### getInitFunctionMap

          public java.util.Map<java.lang.String,​java.lang.reflect.Method> getInitFunctionMap()

      Returns:
        This default implementation returns null
      Since:
        EL 3.0