private static Set<AnnotationMirror> findAllSupers(AnnotationMirror anno,Map<AnnotationMirror,Set<AnnotationMirror>> supertypes,Map<AnnotationMirror,Set<AnnotationMirror>> allSupersSoFar){
  Set<AnnotationMirror> supers=AnnotationUtils.createAnnotationSet();
  for (  AnnotationMirror superAnno : supertypes.get(anno)) {
    supers.add(superAnno);
    supers.addAll(findAllSupers(superAnno,supertypes,allSupersSoFar));
  }
  allSupersSoFar.put(anno,Collections.unmodifiableSet(supers));
  return supers;
}

private static Set < AnnotationMirror > findAllSupers ( AnnotationMirror anno , Map < AnnotationMirror , Set < AnnotationMirror > > supertypes , Map < AnnotationMirror , Set < AnnotationMirror > > allSupersSoFar ) { Set < AnnotationMirror > supers = AnnotationUtils . createAnnotationSet ( ) ; for ( AnnotationMirror superAnno : supertypes . get ( anno ) ) { supers . add ( superAnno ) ; supers . addAll ( findAllSupers ( superAnno , supertypes , allSupersSoFar ) ) ; } allSupersSoFar . put ( anno , Collections . unmodifiableSet ( supers ) ) ; return supers ; }
finds all the super qualifiers for a qualifier .
