public class ReflectivePropertyAccessor extends java.lang.Object implements PropertyAccessor
| Constructor and Description |
|---|
ReflectivePropertyAccessor() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canRead(EvaluationContext context,
java.lang.Object target,
java.lang.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,
java.lang.Object target,
java.lang.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,
java.lang.Object target,
java.lang.String name)
Attempt to create an optimized property accessor tailored for a property of a particular name on
a particular class.
|
protected java.lang.reflect.Field |
findField(java.lang.String name,
java.lang.Class<?> clazz,
boolean mustBeStatic)
Find a field of a certain name on a specified class
|
protected java.lang.reflect.Method |
findGetterForProperty(java.lang.String propertyName,
java.lang.Class<?> clazz,
boolean mustBeStatic)
Find a getter method for the specified property.
|
protected java.lang.reflect.Method |
findSetterForProperty(java.lang.String propertyName,
java.lang.Class<?> clazz,
boolean mustBeStatic)
Find a setter method for the specified property.
|
protected java.lang.String |
getPropertyMethodSuffix(java.lang.String propertyName) |
java.lang.Class<?>[] |
getSpecificTargetClasses()
Return an array of classes for which this resolver should be called.
|
TypedValue |
read(EvaluationContext context,
java.lang.Object target,
java.lang.String name)
Called to read a property from a specified target object
|
void |
write(EvaluationContext context,
java.lang.Object target,
java.lang.String name,
java.lang.Object newValue)
Called to write to a property on a specified target object.
|
public java.lang.Class<?>[] getSpecificTargetClasses()
PropertyAccessorgetSpecificTargetClasses in interface PropertyAccessorpublic boolean canRead(EvaluationContext context, java.lang.Object target, java.lang.String name) throws AccessException
PropertyAccessorcanRead 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 accessedAccessException - if there is any problem determining whether the property can be readpublic TypedValue read(EvaluationContext context, java.lang.Object target, java.lang.String name) throws AccessException
PropertyAccessorread 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 accessedAccessException - if there is any problem accessing the property valuepublic boolean canWrite(EvaluationContext context, java.lang.Object target, java.lang.String name) throws AccessException
PropertyAccessorcanWrite 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 accessedAccessException - if there is any problem determining whether the property can be written topublic void write(EvaluationContext context, java.lang.Object target, java.lang.String name, java.lang.Object newValue) throws AccessException
PropertyAccessorwrite 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 propertyAccessException - if there is any problem writing to the property valueprotected java.lang.reflect.Method findGetterForProperty(java.lang.String propertyName,
java.lang.Class<?> clazz,
boolean mustBeStatic)
protected java.lang.reflect.Method findSetterForProperty(java.lang.String propertyName,
java.lang.Class<?> clazz,
boolean mustBeStatic)
protected java.lang.String getPropertyMethodSuffix(java.lang.String propertyName)
protected java.lang.reflect.Field findField(java.lang.String name,
java.lang.Class<?> clazz,
boolean mustBeStatic)
public PropertyAccessor createOptimalAccessor(EvaluationContext eContext, java.lang.Object target, java.lang.String name)