Interface EvaluationContext
- All Known Implementing Classes:
MethodBasedEvaluationContext
,SimpleEvaluationContext
,StandardEvaluationContext
There are two default implementations of this interface.
SimpleEvaluationContext
: a simpler builder-styleEvaluationContext
variant for data-binding purposes, which allows for opting into several SpEL features as needed.StandardEvaluationContext
: a powerful and highly configurableEvaluationContext
implementation, which can be extended, rather than having to implement everything manually.
- Since:
- 3.0
- Author:
- Andy Clement, Juergen Hoeller, Sam Brannen
-
Method Summary
Modifier and TypeMethodDescriptiondefault TypedValue
assignVariable
(String name, Supplier<TypedValue> valueSupplier) Assign the value created by the specifiedSupplier
to a named variable within this evaluation context.Return a bean resolver that can look up beans by name.default List<ConstructorResolver>
Return a list of resolvers that will be asked in turn to locate a constructor.default List<IndexAccessor>
Return a list of index accessors that will be asked in turn to access or set an indexed value.default List<MethodResolver>
Return a list of resolvers that will be asked in turn to locate a method.Return an operator overloader that may support mathematical operations between more than the standard set of types.default List<PropertyAccessor>
Return a list of accessors that will be asked in turn to read/write a property.Return the default root context object against which unqualified properties, methods, etc.Return a type comparator for comparing pairs of objects for equality.Return a type converter that can convert (or coerce) a value from one type to another.Return a type locator that can be used to find types, either by short or fully qualified name.lookupVariable
(String name) Look up a named variable within this evaluation context.void
setVariable
(String name, Object value) Set a named variable in this evaluation context to a specified value.
-
Method Details
-
getRootObject
TypedValue getRootObject()Return the default root context object against which unqualified properties, methods, etc. should be resolved.This can be overridden when evaluating an expression.
-
getPropertyAccessors
Return a list of accessors that will be asked in turn to read/write a property.The default implementation returns an empty list.
-
getIndexAccessors
Return a list of index accessors that will be asked in turn to access or set an indexed value.The default implementation returns an empty list.
- Since:
- 6.2
-
getConstructorResolvers
Return a list of resolvers that will be asked in turn to locate a constructor.The default implementation returns an empty list.
-
getMethodResolvers
Return a list of resolvers that will be asked in turn to locate a method.The default implementation returns an empty list.
-
getBeanResolver
Return a bean resolver that can look up beans by name. -
getTypeLocator
TypeLocator getTypeLocator()Return a type locator that can be used to find types, either by short or fully qualified name. -
getTypeConverter
TypeConverter getTypeConverter()Return a type converter that can convert (or coerce) a value from one type to another. -
getTypeComparator
TypeComparator getTypeComparator()Return a type comparator for comparing pairs of objects for equality. -
getOperatorOverloader
OperatorOverloader getOperatorOverloader()Return an operator overloader that may support mathematical operations between more than the standard set of types. -
assignVariable
Assign the value created by the specifiedSupplier
to a named variable within this evaluation context.In contrast to
setVariable(String, Object)
, this method should only be invoked to support the assignment operator (=
) within an expression.By default, this method delegates to
setVariable(String, Object)
, providing the value created by thevalueSupplier
. Concrete implementations may override this default method to provide different semantics.- Parameters:
name
- the name of the variable to assignvalueSupplier
- the supplier of the value to be assigned to the variable- Returns:
- a
TypedValue
wrapping the assigned value - Since:
- 5.2.24
-
setVariable
Set a named variable in this evaluation context to a specified value.In contrast to
assignVariable(String, Supplier)
, this method should only be invoked programmatically when interacting directly with theEvaluationContext
— for example, to provide initial configuration for the context.- Parameters:
name
- the name of the variable to setvalue
- the value to be placed in the variable- See Also:
-
lookupVariable
Look up a named variable within this evaluation context.- Parameters:
name
- the name of the variable to look up- Returns:
- the value of the variable, or
null
if not found
-