[webbeans-commits] Webbeans SVN: r3517 - in ri/trunk/impl/src/main/java/org/jboss/webbeans: bean and 1 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Sun Aug 16 05:59:51 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-08-16 05:59:51 -0400 (Sun, 16 Aug 2009)
New Revision: 3517
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
Log:
WBRI-364, and fix annotation literal to support array member values
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -1304,12 +1304,26 @@
public ScopeType getScopeDefinition(Class<? extends Annotation> scopeType)
{
- throw new UnsupportedOperationException("Not yet implemented");
+ if (isScopeType(scopeType))
+ {
+ return getServices().get(MetaAnnotationStore.class).getScopeModel(scopeType).getMetaAnnnotation();
+ }
+ else
+ {
+ throw new IllegalArgumentException("Not a scope type " + scopeType);
+ }
}
public Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype)
{
- throw new UnsupportedOperationException("Not yet implemented");
+ if (getServices().get(MetaAnnotationStore.class).getStereotype(stereotype).isValid())
+ {
+ return getServices().get(MetaAnnotationStore.class).getStereotype(stereotype).getMetaAnnotations();
+ }
+ else
+ {
+ throw new IllegalArgumentException("Not a stereotype " + stereotype);
+ }
}
public boolean isBindingType(Class<? extends Annotation> annotationType)
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -492,12 +492,7 @@
public Set<Class<? extends Annotation>> getStereotypes()
{
- Set<Class<? extends Annotation>> stereotypes = new HashSet<Class<? extends Annotation>>();
- for (Annotation stereotypeAnnotation : getAnnotatedItem().getMetaAnnotations(Stereotype.class))
- {
- stereotypes.add(stereotypeAnnotation.annotationType());
- }
- return stereotypes;
+ return mergedStereotypes.getStereotypes();
}
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/AnnotationModel.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -67,7 +67,7 @@
{
if (!Annotation.class.isAssignableFrom(getRawType()))
{
- throw new DefinitionException(getMetaAnnotation().toString() + " can only be applied to an annotation, it was applied to " + getRawType());
+ throw new DefinitionException(getMetaAnnotationType().toString() + " can only be applied to an annotation, it was applied to " + getRawType());
}
}
@@ -77,7 +77,7 @@
protected void initValid()
{
this.valid = true;
- if (!annotatedAnnotation.isAnnotationPresent(getMetaAnnotation()))
+ if (!annotatedAnnotation.isAnnotationPresent(getMetaAnnotationType()))
{
this.valid = false;
}
@@ -104,7 +104,7 @@
*
* @return
*/
- protected abstract Class<? extends Annotation> getMetaAnnotation();
+ protected abstract Class<? extends Annotation> getMetaAnnotationType();
/**
* Indicates if the annotation is valid
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/BindingTypeModel.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -110,7 +110,7 @@
* @return The BindingType class
*/
@Override
- protected Class<? extends Annotation> getMetaAnnotation()
+ protected Class<? extends Annotation> getMetaAnnotationType()
{
return BindingType.class;
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -36,6 +36,8 @@
// Are any of the sterotypes policies
private boolean policy;
+ private Set<Class<? extends Annotation>> stereotypes;
+
private final BeanManagerImpl manager;
/**
@@ -46,6 +48,7 @@
public MergedStereotypes(Set<Annotation> stereotypeAnnotations, BeanManagerImpl manager)
{
this.possibleScopeTypes = new HashSet<Annotation>();
+ this.stereotypes = new HashSet<Class<? extends Annotation>>();
this.manager = manager;
merge(stereotypeAnnotations);
}
@@ -77,6 +80,7 @@
{
beanNameDefaulted = true;
}
+ this.stereotypes.add(stereotypeAnnotation.annotationType());
// Merge in inherited stereotypes
merge(stereotype.getInheritedSterotypes());
}
@@ -106,15 +110,13 @@
{
return beanNameDefaulted;
}
-
+
/**
- * Indicates if the bean was declared in XML
- *
- * @return True if declared in XML, else false
+ * @return the stereotypes
*/
- public boolean isDeclaredInXml()
+ public Set<Class<? extends Annotation>> getStereotypes()
{
- return false;
+ return stereotypes;
}
/**
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/ScopeModel.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -25,6 +25,7 @@
import javax.enterprise.context.ScopeType;
+import org.jboss.webbeans.literal.ScopeTypeLiteral;
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.resources.ClassTransformer;
@@ -41,6 +42,10 @@
{
private static final Log log = Logging.getLog(ScopeModel.class);
+ private final ScopeType metaAnnotation;
+ private final boolean normal;
+ private final boolean passivating;
+
/**
* Constrctor
*
@@ -49,6 +54,18 @@
public ScopeModel(Class<T> scope, ClassTransformer classTransformer)
{
super(scope, classTransformer);
+ if (isValid())
+ {
+ this.normal = getAnnotatedAnnotation().getAnnotation(ScopeType.class).normal();
+ this.passivating = getAnnotatedAnnotation().getAnnotation(ScopeType.class).passivating();
+ this.metaAnnotation = new ScopeTypeLiteral(normal, passivating);
+ }
+ else
+ {
+ this.normal = false;
+ this.passivating = false;
+ this.metaAnnotation = null;
+ }
}
@Override
@@ -74,7 +91,7 @@
*/
public boolean isNormal()
{
- return getAnnotatedAnnotation().getAnnotation(ScopeType.class).normal();
+ return normal;
}
/**
@@ -84,7 +101,7 @@
*/
public boolean isPassivating()
{
- return getAnnotatedAnnotation().getAnnotation(ScopeType.class).passivating();
+ return passivating;
}
/**
@@ -93,10 +110,15 @@
* @return The ScopeType class
*/
@Override
- protected Class<? extends Annotation> getMetaAnnotation()
+ protected Class<? extends Annotation> getMetaAnnotationType()
{
return ScopeType.class;
}
+
+ public ScopeType getMetaAnnnotation()
+ {
+ return metaAnnotation;
+ }
/**
* Gets a string representation of the scope model
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-08-16 09:57:59 UTC (rev 3516)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-08-16 09:59:51 UTC (rev 3517)
@@ -58,6 +58,8 @@
private Set<Annotation> interceptorBindings;
private Set<Annotation> inheritedSterotypes;
+
+ private Set<Annotation> metaAnnotations;
/**
* Constructor
@@ -73,6 +75,7 @@
initInterceptorBindings();
initInheritedStereotypes();
checkBindings();
+ this.metaAnnotations = getAnnotatedAnnotation().getAnnotations();
}
/**
@@ -202,7 +205,7 @@
* @return The Stereotype class
*/
@Override
- protected Class<? extends Annotation> getMetaAnnotation()
+ protected Class<? extends Annotation> getMetaAnnotationType()
{
return Stereotype.class;
}
@@ -219,5 +222,13 @@
{
return inheritedSterotypes;
}
+
+ /**
+ * @return the metaAnnotations
+ */
+ public Set<Annotation> getMetaAnnotations()
+ {
+ return metaAnnotations;
+ }
}
More information about the weld-commits
mailing list