docs: public static Set<Annotation> getAllAnnotations(final Class<?> cls) {
  		List<Class<?>> allTypes = ClassUtil.getAllSuperclasses(cls);
  		allTypes.addAll(ClassUtil.getAllInterfaces(cls));
  		allTypes.add(cls);
  
  		Set<Annotation> anns = new HashSet<Annotation>();
  		for (Class<?> type : allTypes) {
  			anns.addAll(Arrays.asList(type.getDeclaredAnnotations()));
  		}
  
  		Set<Annotation> superAnnotations = new HashSet<Annotation>();
  		for (Annotation ann : anns) {
  			getSuperAnnotations(ann.annotationType(), superAnnotations);
  		}
  
  		anns.addAll(superAnnotations);
  
  		return anns;
  	}