public class ExpressionFactoryImpl extends ExpressionFactory
ExpressionFactory
Constructor and Description |
---|
ExpressionFactoryImpl() |
ExpressionFactoryImpl(Properties properties) |
Modifier and Type | Method and Description |
---|---|
Object |
coerceToType(Object obj,
Class<?> type)
Coerces an object to a specific type according to the Jakarta Expression Language type conversion rules.
|
MethodExpression |
createMethodExpression(ELContext context,
String expression,
Class<?> expectedReturnType,
Class<?>[] expectedParamTypes)
Parses an expression into a
MethodExpression for later evaluation. |
ValueExpression |
createValueExpression(ELContext context,
String expression,
Class<?> expectedType)
Parses an expression into a
ValueExpression for later evaluation. |
ValueExpression |
createValueExpression(Object instance,
Class<?> expectedType)
Creates a ValueExpression that wraps an object instance.
|
Map<String,Method> |
getInitFunctionMap()
Retrieve a function map containing a pre-configured function mapping.
|
String |
getProperty(String key) |
ELResolver |
getStreamELResolver()
Retrieves an ELResolver that implements the operations in collections.
|
newInstance, newInstance
public ExpressionFactoryImpl()
public ExpressionFactoryImpl(Properties properties)
public Object coerceToType(Object obj, Class<?> type)
ELResolver
s are not considered.
Jakarta Expression Language version 2.2 backward compatibility conversion rules apply if ExpressionFactoryImpl was created with property
"jakarta.el.bc2.2" set to true.coerceToType
in class ExpressionFactory
obj
- The object to coerce.type
- The target type for the coercion.targetType
public MethodExpression createMethodExpression(ELContext context, String expression, Class<?> expectedReturnType, Class<?>[] expectedParamTypes)
ExpressionFactory
MethodExpression
for later evaluation. Use this method for expressions that refer
to methods.
If the expression is a String literal, a MethodExpression
is created, which when invoked, returns the String literal, coerced to expectedReturnType. An ELException is
thrown if expectedReturnType is void or if the coercion of the String literal to the expectedReturnType yields an
error (see Section "1.16 Type Conversion").
This method should perform syntactic validation of the expression. If in doing so it detects errors, it should raise
an ELException
.
createMethodExpression
in class ExpressionFactory
context
- The Jakarta Expression Language context used to parse the expression. The FunctionMapper
and VariableMapper
stored in the ELContext are used to resolve functions and variables found in the
expression. They can be null
, in which case functions or variables are not supported for this
expression. The object returned must invoke the same functions and access the same variable mappings regardless of
whether the mappings in the provided FunctionMapper
and VariableMapper
instances change
between calling ExpressionFactory.createMethodExpression()
and any method on
MethodExpression
. Note that within the EL, the ${} and #{} syntaxes are treated identically. This
includes the use of VariableMapper and FunctionMapper at expression creation time. Each is invoked if not null,
independent of whether the #{} or ${} syntax is used for the expression.expression
- The expression to parseexpectedReturnType
- The expected return type for the method to be found. After evaluating the expression, the
MethodExpression
must check that the return type of the actual method matches this type. Passing in a
value of null
indicates the caller does not care what the return type is, and the check is disabled.expectedParamTypes
- The expected parameter types for the method to be found. Must be an array with no elements
if there are no parameters expected. It is illegal to pass null
, unless the method is specified with
arguments in the Jakarta Expression Language expression, in which case these arguments are used for method selection,
and this parameter is ignored.public ValueExpression createValueExpression(ELContext context, String expression, Class<?> expectedType)
ExpressionFactory
ValueExpression
for later evaluation. Use this method for expressions that refer
to values.
This method should perform syntactic validation of the expression. If in doing so it detects errors, it should raise
an ELException
.
createValueExpression
in class ExpressionFactory
context
- The Jakarta Expression Language context used to parse the expression. The FunctionMapper
and VariableMapper
stored in the ELContext are used to resolve functions and variables found in the
expression. They can be null
, in which case functions or variables are not supported for this
expression. The object returned must invoke the same functions and access the same variable mappings regardless of
whether the mappings in the provided FunctionMapper
and VariableMapper
instances change
between calling ExpressionFactory.createValueExpression()
and any method on
ValueExpression
. Note that within Jakarta Expression Language, the ${} and #{} syntaxes are treated
identically. This includes the use of VariableMapper and FunctionMapper at expression creation time. Each is invoked
if not null, independent of whether the #{} or ${} syntax is used for the expression.expression
- The expression to parseexpectedType
- The type the result of the expression will be coerced to after evaluation.public ValueExpression createValueExpression(Object instance, Class<?> expectedType)
ExpressionFactory
This method can be used to pass any object as a ValueExpression. The wrapper ValueExpression is read only, and
returns the wrapped object via its getValue()
method, optionally coerced.
createValueExpression
in class ExpressionFactory
instance
- The object instance to be wrapped.expectedType
- The type the result of the expression will be coerced to after evaluation. There will be no
coercion if it is Object.class,public ELResolver getStreamELResolver()
ExpressionFactory
This ELResolver resolves the method invocation on the pair (base
, property
) when
base
is a Collection
or a Map
, and property
is the name of the
operation.
See the specification document for detailed descriptions of these operators, their arguments, and return values.
getStreamELResolver
in class ExpressionFactory
ELResolver
that implements the Query Operators.public Map<String,Method> getInitFunctionMap()
ExpressionFactory
getInitFunctionMap
in class ExpressionFactory
Copyright © 2023. All rights reserved.