Reads annotations for the given property.
This is the lowest abstraction that encapsulates the difference between reading inline annotations and external binding files.
Because the former operates on a {@link Field} and {@link Method}while the latter operates on a "property", the methods defined on this interface takes both, and the callee gets to choose which to use.
Most of the get method takes {@link Locatable}, which points to the place/context in which the annotation is read. The returned annotation also implements {@link Locatable} (so that it canpoint to the place where the annotation is placed), and its {@link Locatable#getUpstream()} will return the given{@link Locatable}.
Errors found during reading annotations are reported through the error handler. A valid {@link ErrorHandler} must be registered before the {@link AnnotationReader}is used.
@author Kohsuke Kawaguchi (kk@kohsuke.org)