I am ok with your (a).
/**
* Get annotated classes.
*
* @param cpEntry the classpath entry
* @param annotationsToLookFor the annotations to look for
* @return set of annotated classes
*/
Set<Class<?>> getAnnotatedClasses(VirtualFile cpEntry, Set<Class<? extends Annotation>> annotationsToLookFor);
I still need more info in order to impl this.
* should I care where the annotation comes from; e.g. from class, method, field, parameter, meta-annotation, ...
* does the class have all annotations from annToLookFor or just one is enough
Same goes for inherited superTypesToLookFor.
* does the class have to inherit all or just one