try {
Method getter = propertyDescriptor.getReadMethod();
if ((getter != null) && (getter.getAnnotation(a) != null) && (propertyDescriptor.getWriteMethod() != null))
propertyDescriptor.getWriteMethod().invoke(clone, visitor.visit(getter.invoke(this)));
} catch (Exception ex) {
throw new VisitException("Exception visiting [" + propertyDescriptor.getName() + "]", ex);
}
}
return (T) clone;
}