public class ReflectivePropertyAccessor extends Object implements PropertyAccessor
Constructor and Description |
---|
ReflectivePropertyAccessor() |
Modifier and Type | Method and Description |
---|---|
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.
|
public Class<?>[] getSpecificTargetClasses()
PropertyAccessor
getSpecificTargetClasses
in interface PropertyAccessor
public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException
PropertyAccessor
canRead
in interface PropertyAccessor
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 accessedAccessException
- if there is any problem determining whether the property can be readpublic TypedValue read(EvaluationContext context, Object target, String name) throws AccessException
PropertyAccessor
read
in interface PropertyAccessor
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 accessedAccessException
- if there is any problem accessing the property valuepublic boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException
PropertyAccessor
canWrite
in interface PropertyAccessor
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 accessedAccessException
- if there is any problem determining whether the property can be written topublic void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException
PropertyAccessor
write
in interface PropertyAccessor
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 propertyAccessException
- if there is any problem writing to the property valueprotected 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)