Skip to content

Commit

Permalink
Enterprise bean stubs
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@272 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
nickarls committed Nov 7, 2008
1 parent 679a337 commit 1afc026
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
@@ -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);
}
}

}
Expand Up @@ -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;
Expand All @@ -23,6 +24,11 @@ public static <T> SimpleBean<T> createSimpleWebBean(Class<T> clazz, ManagerImpl
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);
Expand Down

0 comments on commit 1afc026

Please sign in to comment.