@Override public ConfigProgram introspectField(AnnotatedField<?> field) { Resource resource = field.getAnnotation(Resource.class); Field javaField = field.getJavaMember(); String loc = getLocation(javaField); String jndiName = javaField.getDeclaringClass().getName() + "/" + javaField.getName(); Class<?> bindType = javaField.getType(); ValueGenerator gen = generateContext(loc, bindType, jndiName, resource); bindJndi(javaField, gen); return new FieldGeneratorProgram(field.getJavaMember(), gen); }
@Override public ConfigProgram introspectField(AnnotatedField<?> field) { PersistenceContext pContext = field.getAnnotation(PersistenceContext.class); PersistenceContextType type = pContext.type(); Field javaField = field.getJavaMember(); String location = getLocation(javaField); if (!javaField.getType().isAssignableFrom(EntityManager.class)) { throw new ConfigException( L.l( "{0}: @PersistenceContext field must be assignable from EntityManager.", getLocation(javaField))); } ValueGenerator gen; if (PersistenceContextType.EXTENDED.equals(type)) gen = generateExtendedContext(location, pContext); else gen = generateTransactionContext(location, pContext); return new FieldGeneratorProgram(javaField, gen); }