code: public static <A extends Annotation> A findAnnotation(final Annotation source, final Class<A> targetAnnotationClass) {
  		Objects.requireNonNull(source, "incoming 'source' is not valid");
  		Objects.requireNonNull(targetAnnotationClass, "incoming 'targetAnnotationClass' is not valid");
  		return findAnnotation(source, targetAnnotationClass, new HashSet<Class<? extends Annotation>>());
  	}
docs: Deep search of specified source considering "annotation as meta annotation" case (source annotated with specified source).
  
  @param source
  {@link Annotation} - source
  @param targetAnnotationClass
  represents class of the required annotaiton
  @param <A>
  type param
  @return {@link A} in case if found, {@code null} otherwise