[webbeans-commits] Webbeans SVN: r1202 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Fri Jan 23 08:45:29 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-23 08:45:28 -0500 (Fri, 23 Jan 2009)
New Revision: 1202

Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
Log:
Slightly neater specializtion :-)

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-23 13:33:44 UTC (rev 1201)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-23 13:45:28 UTC (rev 1202)
@@ -132,16 +132,17 @@
    protected void init()
    {
       mergedStereotypes = new MergedStereotypes<T, E>(getAnnotatedItem().getMetaAnnotations(Stereotype.class));
+      initBindingTypes();
       if (isSpecializing())
       {
          preCheckSpecialization();
          initSpecialization();
          postSpecialization();
       }
+      initDefaultBindings();
       initType();
       initPrimitive();
       log.debug("Building Web Bean bean metadata for " + getType());
-      initBindingTypes();
       initName();
       initDeploymentType();
       checkDeploymentType();
@@ -167,10 +168,10 @@
    {
       this.bindingTypes = new HashSet<Annotation>();
       this.bindingTypes.addAll(getAnnotatedItem().getMetaAnnotations(BindingType.class));
-      if (isSpecializing())
-      {
-         this.bindingTypes.addAll(getSpecializedBean().getBindings());
-      }
+   }
+   
+   protected void initDefaultBindings()
+   {
       if (bindingTypes.size() == 0)
       {
          log.trace("Adding default @Current binding type");
@@ -180,7 +181,6 @@
       {
          log.trace("Using binding types " + bindingTypes + " specified by annotations");
       }
-      return;
    }
 
    /**
@@ -227,11 +227,6 @@
             return;
          }
       }
-      else if (isSpecializing())
-      {
-         this.name = getSpecializedBean().getName();
-         return;
-      }
       
       if (beanNameDefaulted || getMergedStereotypes().isBeanNameDefaulted())
       {
@@ -334,8 +329,12 @@
       {
          throw new DefinitionException("Cannot put name on specializing and specialized class");
       }
-      // register the specialized bean
-      // TODO not sure this quite right
+      this.bindingTypes.addAll(getSpecializedBean().getBindings());
+      if (isSpecializing() && getSpecializedBean().getAnnotatedItem().isAnnotationPresent(Named.class))
+      {
+         this.name = getSpecializedBean().getName();
+         return;
+      }
       manager.getSpecializedBeans().put(getSpecializedBean(), this);
    }
    




More information about the weld-commits mailing list