public Annotation getAnnotation(final String annotationName) {
Object cachedAnnotation = m_classAnnotationCache.get(annotationName);
if (cachedAnnotation != null) {
return (Annotation)cachedAnnotation;
} else {
final Annotation annotation;
final AnnotationElement.Annotation annotationInfo =
(AnnotationElement.Annotation)m_classAnnotationElements.get(annotationName);
if (annotationInfo != null) {
annotation = ProxyFactory.newAnnotationProxy(
annotationInfo,