# Class ExpressionFactory

java.lang.Object
jakarta.el.ExpressionFactory

public abstract class ExpressionFactory extends Object

Since:
  2.1

## Constructor Summary

Constructors
Constructor
Description
`ExpressionFactory()`

## Method Summary

Modifier and Type
Method
Description
`abstract <T> T`
`coerceToType(Object obj, Class<T> expectedType)`
Coerce the supplied object to the requested type.
`abstract MethodExpression`
`createMethodExpression(ELContext context, String expression, Class<?> expectedReturnType, Class<?>[] expectedParamTypes)`
Create a new method expression instance.
`abstract ValueExpression`
`createValueExpression(ELContext context, String expression, Class<?> expectedType)`
Create a new value expression.
`abstract ValueExpression`
`createValueExpression(Object instance, Class<?> expectedType)`
`Map<String,Method>`
`getInitFunctionMap()`
`ELResolver`
`getStreamELResolver()`
`static ExpressionFactory`
`newInstance()`
Create a new `ExpressionFactory`.
`static ExpressionFactory`
`newInstance(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 Details

### ExpressionFactory

public ExpressionFactory()

## Method Details

### newInstance

public static ExpressionFactory newInstance()
Create a new `ExpressionFactory`. The class to use is determined by the following search order:

1. services API (META-INF/services/jakarta.el.ExpressionFactory)
2. $JRE_HOME/lib/el.properties - key jakarta.el.ExpressionFactory
3. jakarta.el.ExpressionFactory
4. Platform default implementation - org.apache.el.ExpressionFactoryImpl

Returns:
  the new ExpressionFactory

### newInstance

public static ExpressionFactory newInstance(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, String expression, 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:
  `NullPointerException` - If the expected type is `null`
  `ELException` - If there are syntax errors in the provided expression

### createValueExpression

public abstract ValueExpression createValueExpression(Object instance, Class<?> expectedType)

### createMethodExpression

public abstract MethodExpression createMethodExpression(ELContext context, String expression, Class<?> expectedReturnType, 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:
  `NullPointerException` - If the expected parameters types are `null`
  `ELException` - If there are syntax errors in the provided expression

### coerceToType

public abstract <T> T coerceToType(Object obj, Class<T> expectedType)
Coerce the supplied object to the requested type.

Type Parameters:
  `T` - The type to which the object should be coerced
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 Map<String,Method> getInitFunctionMap()

Returns:
  This default implementation returns null
Since:
  EL 3.0