|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.expression.spel.support.ReflectivePropertyAccessor
public class ReflectivePropertyAccessor
Simple PropertyAccessor that uses reflection to access properties for reading and writing. A property can be accessed if it is accessible as a field on the object or through a getter (if being read) or a setter (if being written).
| Field Summary | |
|---|---|
protected Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,org.springframework.expression.spel.support.ReflectivePropertyAccessor.InvokerPair> |
readerCache
|
protected Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,TypeDescriptor> |
typeDescriptorCache
|
protected Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,Member> |
writerCache
|
| Constructor Summary | |
|---|---|
ReflectivePropertyAccessor()
|
|
| Method Summary | |
|---|---|
boolean |
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. |
PropertyAccessor |
createOptimalAccessor(EvaluationContext eContext,
Object target,
String name)
Attempt to create an optimized property accessor tailored for a property of a particular name on a particular class. |
protected Field |
findField(String name,
Class<?> clazz,
boolean mustBeStatic)
Find a field of a certain name on a specified class |
protected Method |
findGetterForProperty(String propertyName,
Class<?> clazz,
boolean mustBeStatic)
Find a getter method for the specified property. |
protected Method |
findSetterForProperty(String propertyName,
Class<?> clazz,
boolean mustBeStatic)
Find a setter method for the specified property. |
Class<?>[] |
getSpecificTargetClasses()
Return an array of classes for which this resolver should be called. |
TypedValue |
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,org.springframework.expression.spel.support.ReflectivePropertyAccessor.InvokerPair> readerCache
protected final Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,Member> writerCache
protected final Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor.CacheKey,TypeDescriptor> typeDescriptorCache
| Constructor Detail |
|---|
public ReflectivePropertyAccessor()
| Method Detail |
|---|
public Class<?>[] getSpecificTargetClasses()
PropertyAccessor
getSpecificTargetClasses in interface PropertyAccessor
public boolean canRead(EvaluationContext context,
Object target,
String name)
throws AccessException
PropertyAccessor
canRead in interface PropertyAccessorcontext - 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
AccessException - if there is any problem determining whether the property can be read
public TypedValue read(EvaluationContext context,
Object target,
String name)
throws AccessException
PropertyAccessor
read in interface PropertyAccessorcontext - 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
AccessException - if there is any problem accessing the property value
public boolean canWrite(EvaluationContext context,
Object target,
String name)
throws AccessException
PropertyAccessor
canWrite in interface PropertyAccessorcontext - 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
AccessException - if there is any problem determining whether the property can be written to
public void write(EvaluationContext context,
Object target,
String name,
Object newValue)
throws AccessException
PropertyAccessor
write in interface PropertyAccessorcontext - 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
AccessException - if there is any problem writing to the property value
protected Method findGetterForProperty(String propertyName,
Class<?> clazz,
boolean mustBeStatic)
protected Method findSetterForProperty(String propertyName,
Class<?> clazz,
boolean mustBeStatic)
protected Field findField(String name,
Class<?> clazz,
boolean mustBeStatic)
public PropertyAccessor createOptimalAccessor(EvaluationContext eContext,
Object target,
String name)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||