in webbeans-impl/src/main/java/org/apache/webbeans/deployment/StereoTypeModel.java [89:187]
private void configAnnotations(Class<? extends Annotation> clazz, WebBeansContext webBeansContext, Annotation... annotations)
{
if(clazz.getAnnotation(Typed.class) != null)
{
if(logger.isLoggable(Level.WARNING))
{
logger.log(Level.WARNING, OWBLogConst.WARN_0016, clazz.getName());
}
}
AnnotationManager annotationManager = webBeansContext.getAnnotationManager();
Annotation[] qualifiers = annotationManager.getQualifierAnnotations(annotations);
if(qualifiers != null)
{
for(Annotation qualifier : qualifiers)
{
if(qualifier.annotationType() == Default.class)
{
return;
}
if(qualifier.annotationType() != Named.class)
{
if(logger.isLoggable(Level.WARNING))
{
logger.log(Level.WARNING, OWBLogConst.WARN_0017, WebBeansLoggerFacade.args(clazz.getName(),qualifier.annotationType().getName()));
}
}
else if (!named)
{
named = true;
}
}
}
if (AnnotationUtil.hasMetaAnnotation(annotations, NormalScope.class))
{
defaultScopeType = AnnotationUtil.getMetaAnnotations(annotations, NormalScope.class)[0];
}
if (AnnotationUtil.hasMetaAnnotation(annotations, Scope.class))
{
defaultScopeType = AnnotationUtil.getMetaAnnotations(annotations, Scope.class)[0];
}
if (annotationManager.hasInterceptorBindingMetaAnnotation(annotations))
{
Annotation[] ibs =
annotationManager.getInterceptorBindingMetaAnnotations(annotations);
for (Annotation ann : ibs)
{
interceptorBindingTypes.add(ann);
}
}
if (annotationManager.hasStereoTypeMetaAnnotation(annotations))
{
Annotation[] isy =
annotationManager.getStereotypeMetaAnnotations(annotations);
Target outerStereo = clazz.getAnnotation(Target.class);
for (Annotation is : isy)
{
Target innerStereo = is.annotationType().getAnnotation(Target.class);
ElementType[] innerValues = innerStereo.value();
ElementType[] outerValues = outerStereo.value();
for (ElementType innerValue : innerValues)
{
if (innerValue == ElementType.METHOD || innerValue == ElementType.FIELD)
{
for (ElementType outerValue : outerValues)
{
if (outerValue == ElementType.TYPE && outerValues.length == 1)
{
throw new WebBeansConfigurationException("Inherited StereoType with class name : " + clazz.getName()
+ " must have compatible @Target annotation with Stereotype class name : " + clazz.getName());
}
}
}
else if (innerValue == ElementType.TYPE && innerValues.length == 1)
{
for (ElementType outerValue : outerValues)
{
if (outerValue == ElementType.METHOD || outerValue == ElementType.FIELD)
{
throw new WebBeansConfigurationException("Inherited StereoType with class name : " + clazz.getName()
+ " must have compatible @Target annotation with Stereotype class name : " + clazz.getName());
}
}
}
}
inherits.add(is);
}
}
}