org.springframework.expression.spel.support
Class StandardEvaluationContext

java.lang.Object
  extended by org.springframework.expression.spel.support.StandardEvaluationContext
All Implemented Interfaces:
EvaluationContext

public class StandardEvaluationContext
extends Object
implements EvaluationContext

Provides a default EvaluationContext implementation.

To resolve properties/methods/fields this context uses a reflection mechanism.

Since:
3.0
Author:
Andy Clement, Juergen Hoeller

Constructor Summary
StandardEvaluationContext()
           
StandardEvaluationContext(Object rootObject)
           
 
Method Summary
 void addConstructorResolver(ConstructorResolver resolver)
           
 void addMethodResolver(MethodResolver resolver)
           
 void addPropertyAccessor(PropertyAccessor accessor)
           
 List<ConstructorResolver> getConstructorResolvers()
           
 List<MethodResolver> getMethodResolvers()
           
 OperatorOverloader getOperatorOverloader()
           
 List<PropertyAccessor> getPropertyAccessors()
           
 TypedValue getRootObject()
           
 TypeComparator getTypeComparator()
           
 TypeConverter getTypeConverter()
           
 TypeLocator getTypeLocator()
           
 Object lookupVariable(String name)
          Look up a named variable within this evaluation context.
 void registerFunction(String name, Method method)
           
 void setOperatorOverloader(OperatorOverloader operatorOverloader)
           
 void setRootObject(Object rootObject)
           
 void setRootObject(Object rootObject, TypeDescriptor typeDescriptor)
           
 void setTypeComparator(TypeComparator typeComparator)
           
 void setTypeConverter(TypeConverter typeConverter)
           
 void setTypeLocator(TypeLocator typeLocator)
           
 void setVariable(String name, Object value)
          Set a named variable within this evaluation context to a specified value.
 void setVariables(Map<String,Object> variables)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StandardEvaluationContext

public StandardEvaluationContext()

StandardEvaluationContext

public StandardEvaluationContext(Object rootObject)
Method Detail

setRootObject

public void setRootObject(Object rootObject)

setRootObject

public void setRootObject(Object rootObject,
                          TypeDescriptor typeDescriptor)

getRootObject

public TypedValue getRootObject()
Specified by:
getRootObject in interface EvaluationContext
Returns:
the default root context object against which unqualified properties/methods/etc should be resolved. This can be overridden when evaluating an expression.

addConstructorResolver

public void addConstructorResolver(ConstructorResolver resolver)

getConstructorResolvers

public List<ConstructorResolver> getConstructorResolvers()
Specified by:
getConstructorResolvers in interface EvaluationContext
Returns:
a list of resolvers that will be asked in turn to locate a constructor

addMethodResolver

public void addMethodResolver(MethodResolver resolver)

getMethodResolvers

public List<MethodResolver> getMethodResolvers()
Specified by:
getMethodResolvers in interface EvaluationContext
Returns:
a list of resolvers that will be asked in turn to locate a method

addPropertyAccessor

public void addPropertyAccessor(PropertyAccessor accessor)

getPropertyAccessors

public List<PropertyAccessor> getPropertyAccessors()
Specified by:
getPropertyAccessors in interface EvaluationContext
Returns:
a list of accessors that will be asked in turn to read/write a property

setTypeLocator

public void setTypeLocator(TypeLocator typeLocator)

getTypeLocator

public TypeLocator getTypeLocator()
Specified by:
getTypeLocator in interface EvaluationContext
Returns:
a type locator that can be used to find types, either by short or fully qualified name.

setTypeConverter

public void setTypeConverter(TypeConverter typeConverter)

getTypeConverter

public TypeConverter getTypeConverter()
Specified by:
getTypeConverter in interface EvaluationContext
Returns:
a type converter that can convert (or coerce) a value from one type to another.

setTypeComparator

public void setTypeComparator(TypeComparator typeComparator)

getTypeComparator

public TypeComparator getTypeComparator()
Specified by:
getTypeComparator in interface EvaluationContext
Returns:
a type comparator for comparing pairs of objects for equality.

setOperatorOverloader

public void setOperatorOverloader(OperatorOverloader operatorOverloader)

getOperatorOverloader

public OperatorOverloader getOperatorOverloader()
Specified by:
getOperatorOverloader in interface EvaluationContext
Returns:
an operator overloader that may support mathematical operations between more than the standard set of types

setVariable

public void setVariable(String name,
                        Object value)
Description copied from interface: EvaluationContext
Set a named variable within this evaluation context to a specified value.

Specified by:
setVariable in interface EvaluationContext
Parameters:
name - variable to set
value - value to be placed in the variable

setVariables

public void setVariables(Map<String,Object> variables)

registerFunction

public void registerFunction(String name,
                             Method method)

lookupVariable

public Object lookupVariable(String name)
Description copied from interface: EvaluationContext
Look up a named variable within this evaluation context.

Specified by:
lookupVariable in interface EvaluationContext
Parameters:
name - variable to lookup
Returns:
the value of the variable