}
try
{
Field f = clazz.getDeclaredField(_propertyName);
return new PropertyAccessor(f);
}
catch (NoSuchFieldException nsfe)
{
try
{
Method m = clazz.getDeclaredMethod(toGetter(_propertyName, false));
return new PropertyAccessor(m);
}
catch (NoSuchMethodException nsme)
{
try
{
Method m = clazz.getDeclaredMethod(toGetter(_propertyName, true));
return new PropertyAccessor(m);
}
catch (NoSuchMethodException e)
{
return getAccessor(clazz.getSuperclass());
}