1 22 package org.jboss.injection; 23 24 import java.lang.reflect.Field ; 25 import org.jboss.ejb3.BeanContext; 26 import org.jboss.logging.Logger; 27 28 34 public class EntityManagerFactoryFieldInjector implements Injector, PojoInjector 35 { 36 private static final Logger log = Logger.getLogger(EntityManagerFactoryFieldInjector.class); 37 private Field field; 38 private Object factory; 39 40 public EntityManagerFactoryFieldInjector(Field field, Object factory) 41 { 42 this.field = field; 43 this.field.setAccessible(true); 44 this.factory = factory; 45 } 46 47 public void inject(BeanContext ctx) 48 { 49 inject(ctx, ctx.getInstance()); 50 } 51 52 public void inject(BeanContext ctx, Object instance) 53 { 54 inject(instance); 55 } 56 57 public void inject(Object instance) 58 { 59 try 60 { 61 field.set(instance, factory); 62 } 63 catch (IllegalAccessException e) 64 { 65 throw new RuntimeException (e); } 67 catch (IllegalArgumentException e) 68 { 69 throw new RuntimeException ("Failed in setting EntityManager on setter field: " + field.toString()); 70 } 71 } 72 73 public Class getInjectionClass() 74 { 75 return field.getType(); 76 } 77 78 } 79 | Popular Tags |