Package org.springframework.expression
Interface PropertyAccessor
- All Superinterfaces:
 TargetedAccessor
- All Known Subinterfaces:
 CompilablePropertyAccessor
- All Known Implementing Classes:
 BeanExpressionContextAccessor,BeanFactoryAccessor,DataBindingPropertyAccessor,EnvironmentAccessor,MapAccessor,ReflectivePropertyAccessor
A property accessor is able to read from (and possibly write to) an object's
 properties.
 
This interface places no restrictions on what constitutes a property. Implementors are therefore free to access properties directly via fields, through getters, or in any other way they deem appropriate.
A property accessor can specify an array of
 target classes for which it should be
 called. See TargetedAccessor for details.
- Since:
 - 3.0
 - Author:
 - Andy Clement
 - See Also:
 
- 
Method Summary
Modifier and TypeMethodDescriptionbooleancanRead(EvaluationContext context, Object target, String name) Called to determine if this property accessor is able to read a specified property on a specified target object.booleancanWrite(EvaluationContext context, Object target, String name) Called to determine if this property accessor is able to write to a specified property on a specified target object.read(EvaluationContext context, Object target, String name) Called to read a property from a specified target object.voidwrite(EvaluationContext context, Object target, String name, Object newValue) Called to write to a property on a specified target object.Methods inherited from interface org.springframework.expression.TargetedAccessor
getSpecificTargetClasses 
- 
Method Details
- 
canRead
boolean canRead(EvaluationContext context, @Nullable Object target, String name) throws AccessException Called to determine if this property accessor is able to read a specified property on a specified target object.- 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
TypedValue read(EvaluationContext context, @Nullable Object target, String name) throws AccessException Called to read a property from a specified target object.Should only succeed if
canRead(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)also returnstrue.- 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
boolean canWrite(EvaluationContext context, @Nullable Object target, String name) throws AccessException Called to determine if this property accessor is able to write to a specified property on a specified target object.- 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
void write(EvaluationContext context, @Nullable Object target, String name, @Nullable Object newValue) throws AccessException Called to write to a property on a specified target object.Should only succeed if
canWrite(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)also returnstrue.- 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
 
 -