Class ExpressionFactory
java.lang.Object
jakarta.el.ExpressionFactory
Factory for creating
ValueExpression and MethodExpression instances, and for coercing objects to
specific types. Implementations parse and compile EL expressions. Use newInstance() to obtain an instance
using the standard discovery mechanism.- Since:
- EL 2.1
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract <T> TcoerceToType(Object obj, Class<T> expectedType) Coerce the supplied object to the requested type.abstract MethodExpressioncreateMethodExpression(ELContext context, String expression, Class<?> expectedReturnType, Class<?>[] expectedParamTypes) Create a new method expression instance.abstract ValueExpressioncreateValueExpression(ELContext context, String expression, Class<?> expectedType) Create a new value expression.abstract ValueExpressioncreateValueExpression(Object instance, Class<?> expectedType) Creates aValueExpressionthat, when evaluated, returns the given instance of the specified type.Returns a map of function names toMethodobjects representing the standard EL functions that are available by default without explicit registration.Returns anELResolvercapable of resolving properties onInputStreamobjects, enabling EL expressions to operate on stream types.static ExpressionFactoryCreate a newExpressionFactory.static ExpressionFactorynewInstance(Properties properties) Create a newExpressionFactorypassing in the providedProperties.
-
Constructor Details
-
ExpressionFactory
public ExpressionFactory()Constructs an ExpressionFactory. Subclasses should invoke this constructor to initialize the base factory state.
-
-
Method Details
-
newInstance
Create a newExpressionFactory. The class to use is determined by the following search order:- services API (META-INF/services/jakarta.el.ExpressionFactory)
- $JRE_HOME/lib/el.properties - key jakarta.el.ExpressionFactory
- jakarta.el.ExpressionFactory
- Platform default implementation - org.apache.el.ExpressionFactoryImpl
- Returns:
- the new ExpressionFactory
-
newInstance
Create a newExpressionFactorypassing in the providedProperties. Search order is the same asnewInstance().- Parameters:
properties- the properties to be passed to the new instance (might 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 evaluationexpression- The String representation of the value expressionexpectedType- 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 isnullELException- If there are syntax errors in the provided expression
-
createValueExpression
Creates aValueExpressionthat, when evaluated, returns the given instance of the specified type. This is a convenience method for creating a constant value expression without requiring anELContext.- Parameters:
instance- the constant value to wrapexpectedType- the expected type of the value- Returns:
- a ValueExpression that returns the given instance when evaluated
-
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 evaluationexpression- The String representation of the method expressionexpectedReturnType- The expected type of the result of invoking the methodexpectedParamTypes- The expected types of the input parameters- Returns:
- A new method expression formed from the input parameters.
- Throws:
NullPointerException- If the expected parameters types arenullELException- If there are syntax errors in the provided expression
-
coerceToType
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 coercedexpectedType- The type to which the object should be coerced- Returns:
- An instance of the requested type.
- Throws:
ELException- If the conversion fails
-
getStreamELResolver
Returns anELResolvercapable of resolving properties onInputStreamobjects, enabling EL expressions to operate on stream types. This allows expressions to read data from input streams using standard property navigation syntax.- Returns:
- the StreamELResolver, or
nullif not supported by this implementation - Since:
- EL 3.0
-
getInitFunctionMap
Returns a map of function names toMethodobjects representing the standard EL functions that are available by default without explicit registration. Implementations can override this method to provide a set of built-in functions.- Returns:
- a map of function names to methods, or
nullif no default functions are provided - Since:
- EL 3.0
-