[
https://issues.jboss.org/browse/SOLDER-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569150#comment-12569150
]
Dan Allen commented on SOLDER-52:
---------------------------------
Proposed methods:
public static <A extends Annotation> boolean isAnnotationPresent(Annotated
annotated, final Class<A> annotationType, BeanManager beanManager)
{
if (annotated.isAnnotationPresent(annotationType))
{
return true;
}
for (Annotation candidate : annotated.getAnnotations())
{
if (beanManager.isStereotype(candidate.annotationType()))
{
for (Annotation stereotyped :
beanManager.getStereotypeDefinition(candidate.annotationType()))
{
if (stereotyped.annotationType().equals(annotationType))
{
return true;
}
}
}
}
return false;
}
public static <A extends Annotation> boolean getAnnotation(Annotated annotated,
final Class<A> annotationType, BeanManager beanManager)
{
Annotation found = annotated.getAnnotation(annotationType);
if (found != null)
{
return annotationType.cast(found);
}
for (Annotation candidate : annotated.getAnnotations())
{
if (beanManager.isStereotype(candidate.annotationType()))
{
for (Annotation stereotyped :
beanManager.getStereotypeDefinition(candidate.annotationType()))
{
if (stereotyped.annotationType().equals(annotationType))
{
return annotationType.cast(stereotyped);
}
}
}
}
return null;
}
Though we should probably expand this to handle three flags:
1. Only look on Annotated
2. Look on Annotated or stereotypes
3. Look on Annotated or as meta-annotation
There are holes in the scenarios covered by the existing methods as well.
> Add methods to AnnotationIntrospector that operate on Annotated (from CDI)
> --------------------------------------------------------------------------
>
> Key: SOLDER-52
> URL: https://issues.jboss.org/browse/SOLDER-52
> Project: Seam Solder
> Issue Type: Feature Request
> Reporter: Dan Allen
>
> The AnnotationIntrospector works on java.lang.reflect.AnnotatedElement types.
> However, in an extension, you are most often dealing with an Annotated.
> Therefore, the AnnotationIntrospector should provide parallel utilities for
> retrieving/checking an annotation on Annotated or any stereotype on
> Annotated.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues