Class BeanFactoryAccessor
java.lang.Object
org.springframework.context.expression.BeanFactoryAccessor
- All Implemented Interfaces:
PropertyAccessor
EL property accessor that knows how to traverse the beans of a
Spring
BeanFactory
.- Since:
- 3.0
- Author:
- Juergen Hoeller, Andy Clement
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canRead
(EvaluationContext context, Object target, String name) Called to determine if a resolver instance is able to access a specified property on a specified target object.boolean
canWrite
(EvaluationContext context, Object target, String name) Called to determine if a resolver instance is able to write to a specified property on a specified target object.Class<?>[]
Return an array of classes for which this resolver should be called.read
(EvaluationContext context, Object target, String name) Called to read a property from a specified target object.void
write
(EvaluationContext context, Object target, String name, Object newValue) Called to write to a property on a specified target object.
-
Constructor Details
-
BeanFactoryAccessor
public BeanFactoryAccessor()
-
-
Method Details
-
getSpecificTargetClasses
Description copied from interface:PropertyAccessor
Return an array of classes for which this resolver should be called.Returning
null
indicates this is a general resolver that can be called in an attempt to resolve a property on any type.- Specified by:
getSpecificTargetClasses
in interfacePropertyAccessor
- Returns:
- an array of classes that this resolver is suitable for
(or
null
if a general resolver)
-
canRead
public boolean canRead(EvaluationContext context, @Nullable Object target, String name) throws AccessException Description copied from interface:PropertyAccessor
Called to determine if a resolver instance is able to access 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 resolver 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 ifPropertyAccessor.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 accessing 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 a resolver instance 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 resolver 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 ifPropertyAccessor.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
-