if (result == null) {
final Map<Class,Annotation> res =
new HashMap<Class,Annotation>() ;
ClassAnalyzer ca = ClassAnalyzer.getClassAnalyzer(cls) ;
ca.findClasses( new Predicate<Class>() {
public boolean evaluate(Class arg) {
// First, put in declared annotations if not already present.
Annotation[] annots = arg.getDeclaredAnnotations() ;
for (Annotation anno : annots) {
putIfNotPresent( res, anno.annotationType(), anno ) ;