code: public static Predicate<Class<?>> classOrAncestorAnnotatedWith(final Class<? extends Annotation> annotationClass,
              boolean includeMetaAnnotations) {
          return candidate -> candidate != null && Classes.from(candidate)
                  .traversingSuperclasses()
                  .traversingInterfaces()
                  .classes()
                  .anyMatch(elementAnnotatedWith(annotationClass, includeMetaAnnotations));
      }
docs: Checks if the candidate or one of its superclasses or interfaces is annotated with the
  specified annotation.
  
  @param annotationClass        the requested annotation
  @param includeMetaAnnotations if true, meta-annotations are included in the search.
  @return the predicate.