private List<Declaration> getDeclarationsAnnotatedWith(final ITypeBinding annotationType) {
   final Map<ASTNode, List<Annotation>> astNode2Anno = getASTNodesWithAnnotations();
   if (astNode2Anno.isEmpty()) return Collections.emptyList();
   final List<Declaration> decls = new ArrayList<Declaration>();
   for (Map.Entry<ASTNode, List<Annotation>> entry : astNode2Anno.entrySet()) {
     final ASTNode node = entry.getKey();
     for (Annotation anno : entry.getValue()) {
       final IBinding resolvedTypeBinding = anno.resolveTypeBinding();
       if (annotationType.isEqualTo(resolvedTypeBinding)) getDeclarations(node, decls);
     }
   }
   return decls;
 }