Interface EvaluationContext
- All Known Implementing Classes:
MethodBasedEvaluationContext,SimpleEvaluationContext,StandardEvaluationContext
There are two default implementations of this interface.
SimpleEvaluationContext: a simpler builder-styleEvaluationContextvariant for data-binding purposes, which allows for opting into several SpEL features as needed.StandardEvaluationContext: a powerful and highly configurableEvaluationContextimplementation, 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 TypedValueassignVariable(String name, Supplier<TypedValue> valueSupplier) Assign the value created by the specifiedSupplierto 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.voidsetVariable(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 specifiedSupplierto 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
TypedValuewrapping 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
nullif not found
-