[webbeans-commits] Webbeans SVN: r272 - in ri/trunk/webbeans-ri/src: test/java/org/jboss/webbeans/test/util and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Fri Nov 7 05:28:32 EST 2008


Author: nickarls
Date: 2008-11-07 05:28:31 -0500 (Fri, 07 Nov 2008)
New Revision: 272

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
Modified:
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Enterprise bean stubs

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	2008-11-07 10:28:31 UTC (rev 272)
@@ -0,0 +1,63 @@
+package org.jboss.webbeans.bean;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.injectable.InjectableField;
+import org.jboss.webbeans.injectable.InjectableMethod;
+import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
+
+public class EnterpriseBean<T> extends AbstractBean<T>
+{
+   private EnterpriseBeanModel<T> model;
+   
+   public EnterpriseBean(EnterpriseBeanModel<T> model, ManagerImpl manager) {
+      super(manager);
+      this.model = model;
+   }
+
+   @Override
+   public EnterpriseBeanModel<T> getModel()
+   {
+      return model;
+   }
+
+   @Override
+   public T create()
+   {
+      T instance = model.getConstructor().invoke(manager);
+      bindDecorators();
+      bindInterceptors();
+      injectEjbAndCommonFields();
+      injectBoundFields(instance);
+      callInitializers(instance);
+      return instance;      
+   }
+   
+   @Override
+   public void destroy(T instance)
+   {
+      // TODO Auto-generated method stub
+      super.destroy(instance);
+   }
+
+   protected void callInitializers(T instance)
+   {
+      for (InjectableMethod<Object> initializer : model.getInitializerMethods())
+      {
+         initializer.invoke(manager, instance);
+      }
+   }
+   
+   protected void injectEjbAndCommonFields()
+   {
+      // TODO
+   }
+   
+   protected void injectBoundFields(T instance)
+   {
+      for (InjectableField<?> injectableField : getModel().getInjectableFields())
+      {
+         injectableField.inject(instance, manager);
+      }
+   }   
+
+}

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java	2008-11-07 03:45:58 UTC (rev 271)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java	2008-11-07 10:28:31 UTC (rev 272)
@@ -6,6 +6,7 @@
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.EnterpriseBean;
 import org.jboss.webbeans.bean.ProducerMethodBean;
 import org.jboss.webbeans.bean.SimpleBean;
 import org.jboss.webbeans.introspector.AnnotatedClass;
@@ -23,6 +24,11 @@
       return new SimpleBean<T>(createSimpleModel(clazz, manager), manager);
    }
 
+   public static <T> EnterpriseBean<T> createSimpleEnterpriseBean(Class<T> clazz, ManagerImpl manager)
+   {
+      return new EnterpriseBean<T>(createEnterpriseBeanModel(clazz, manager), manager);
+   }
+   
    public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, ManagerImpl manager)
    {
       return new SimpleBeanModel<T>(new SimpleAnnotatedClass<T>(clazz), null, manager);




More information about the weld-commits mailing list