Class BeanExpressionContextAccessor
java.lang.Object
org.springframework.context.expression.BeanExpressionContextAccessor
- All Implemented Interfaces:
PropertyAccessor
,TargetedAccessor
SpEL
PropertyAccessor
that knows how to access the beans and contextual
objects of a Spring BeanExpressionContext
.- Since:
- 3.0
- Author:
- Juergen Hoeller, Andy Clement
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canRead
(EvaluationContext context, @Nullable Object target, String name) Called to determine if this property accessor is able to read a specified property on a specified target object.boolean
canWrite
(EvaluationContext context, @Nullable Object target, String name) Called to determine if this property accessor is able to write to a specified property on a specified target object.Class<?>[]
Get the set of classes for which this accessor should be called.read
(EvaluationContext context, @Nullable Object target, String name) Called to read a property from a specified target object.void
Called to write to a property on a specified target object.
-
Constructor Details
-
BeanExpressionContextAccessor
public BeanExpressionContextAccessor()
-
-
Method Details
-
getSpecificTargetClasses
Description copied from interface:TargetedAccessor
Get the set of classes for which this accessor should be called.Returning
null
or an empty array indicates this is a generic accessor that can be called in an attempt to access an element on any type.- Specified by:
getSpecificTargetClasses
in interfaceTargetedAccessor
- Returns:
- an array of classes that this accessor is suitable for
(or
null
or an empty array if a generic accessor)
-
canRead
public boolean canRead(EvaluationContext context, @Nullable Object target, String name) throws AccessException Description copied from interface:PropertyAccessor
Called to determine if this property accessor is able to read a specified property on a specified target object.- Specified by:
canRead
in interfacePropertyAccessor
- Parameters:
context
- the evaluation context in which the access is being attemptedtarget
- the target object upon which the property is being accessedname
- the name of the property being accessed- Returns:
- true if this property accessor is able to read the property
- Throws:
AccessException
- if there is any problem determining whether the property can be read
-
read
public TypedValue read(EvaluationContext context, @Nullable Object target, String name) throws AccessException Description copied from interface:PropertyAccessor
Called to read a property from a specified target object.Should only succeed if
PropertyAccessor.canRead(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)
also returnstrue
.- Specified by:
read
in interfacePropertyAccessor
- Parameters:
context
- the evaluation context in which the access is being attemptedtarget
- the target object upon which the property is being accessedname
- the name of the property being accessed- Returns:
- a TypedValue object wrapping the property value read and a type descriptor for it
- Throws:
AccessException
- if there is any problem reading the property value
-
canWrite
public boolean canWrite(EvaluationContext context, @Nullable Object target, String name) throws AccessException Description copied from interface:PropertyAccessor
Called to determine if this property accessor is able to write to a specified property on a specified target object.- Specified by:
canWrite
in interfacePropertyAccessor
- Parameters:
context
- the evaluation context in which the access is being attemptedtarget
- the target object upon which the property is being accessedname
- the name of the property being accessed- Returns:
- true if this property accessor is able to write to the property
- Throws:
AccessException
- if there is any problem determining whether the property can be written to
-
write
public void write(EvaluationContext context, @Nullable Object target, String name, @Nullable Object newValue) throws AccessException Description copied from interface:PropertyAccessor
Called to write to a property on a specified target object.Should only succeed if
PropertyAccessor.canWrite(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)
also returnstrue
.- Specified by:
write
in interfacePropertyAccessor
- Parameters:
context
- the evaluation context in which the access is being attemptedtarget
- the target object upon which the property is being accessedname
- the name of the property being accessednewValue
- the new value for the property- Throws:
AccessException
- if there is any problem writing to the property value
-