public AnnotationHelper(Annotation... annots) { attrs = new HashMap<Class<? extends Annotation>, Annotation>(); Annotation foundQualifier = null; for (Annotation a: annots) { if (a.annotationType().getAnnotation(Attribute.class) != null) { // a is an attribute attrs.put(a.annotationType(), a); } if (foundQualifier == null && Qualifiers.isQualifier(a.annotationType())) { // a is a qualifier foundQualifier = a; } } qualifier = foundQualifier; }
@SuppressWarnings("unchecked") public static void isQualifier(Class<?> type) { if (!Annotation.class.isAssignableFrom(type)) { throw new InvalidBindingException(type, "Type is not an Annotation"); } if (!Qualifiers.isQualifier((Class<? extends Annotation>) type)) { throw new InvalidBindingException(type, "Annotation is not annotated with @Qualifier"); } }