[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