code: <T extends Annotation> List<T> getAnnotationWithMeta(AnnotatedElement element, Class<T> annotation) {
          return (List) Stream.of(element.getDeclaredAnnotations())
                  .flatMap(this::addMetaAnnotations)
                  .filter(a -> annotation.isAssignableFrom(a.annotationType()))
                  .collect(Collectors.toList());
      }
docs: Get the annotations of given type which are available on the annotated element. Considers both the annotations
  on the element and the meta-annotations (annotations on the annotations).
  <p>The result is given in no specific order</p>
  
  @param element annotated element
  @param annotation annotation to find
  @param <T> annotation type
  @return annotation