public AnnotatedType<?> getAnnotatedType() { return builder.create(); }
<X> void detectBundleInjectionTargets(@Observes ProcessInjectionTarget<X> event, BeanManager beanManager) { AnnotatedType<X> type = event.getAnnotatedType(); for (AnnotatedField<?> f : type.getFields()) { Field field = f.getJavaMember(); Class<?> clz = field.getType(); if (clz.isAnnotationPresent(MessageBundle.class)) { log.info("Add @MessageBundle to " + type.getJavaClass().getName() + "." + field.getName() + " injection point for the type: " + clz.getName()); AnnotatedTypeBuilder<X> typeBuilder = new AnnotatedTypeBuilder<X>().readFromType(type); typeBuilder.addToField(field, MessageBundleLiteral.INSTANCE); event.setInjectionTarget(beanManager.createInjectionTarget(typeBuilder.create())); } } } }
/** * Creates a wrapper around an AutoProxy handler class * * @param handlerClass The handler class * @throws IllegalArgumentException if the handler class is does not have a * suitable @AroundInvoke method */ ServiceHandlerManager(Class<T> handlerClass, BeanManager beanManager) throws IllegalArgumentException { this.handlerClass = handlerClass; handlerMethod = getHandlerMethod(handlerClass); //now create the InjectionTarget AnnotatedTypeBuilder<T> typeBuilder = new AnnotatedTypeBuilder<T>().readFromType(handlerClass); injectionTarget = beanManager.createInjectionTarget(typeBuilder.create()); }
public <T> void processAnnotatedType(@Observes final ProcessAnnotatedType<T> event) { AnnotatedTypeBuilder<T> builder = new AnnotatedTypeBuilder<T>(); builder.readFromType(event.getAnnotatedType()); boolean modifiedType = false; for (AnnotatedField<?> f : event.getAnnotatedType().getFields()) { if (f.isAnnotationPresent(InputField.class)) { builder.overrideFieldType(f.getJavaMember(), Object.class); modifiedType = true; } } if (modifiedType) { AnnotatedType<T> replacement = builder.create(); typeOverrides.put(replacement.getJavaClass(), replacement); event.setAnnotatedType(replacement); } }
private AnnotatedType<Object> decorateType(final AnnotatedType<Object> type, final Class<? extends Annotation> jsfScope) { final Class<? extends Annotation> cdiScope = getCdiScopeFor(jsfScope); AnnotationInstanceProvider provider = new AnnotationInstanceProvider(); final Annotation cdiScopeAnnotation = provider.get(cdiScope, Collections.EMPTY_MAP); AnnotatedTypeBuilder builder; builder = new AnnotatedTypeBuilder() .readFromType(type) .removeFromClass(jsfScope) .addToClass(cdiScopeAnnotation); return builder.create(); } }
event.setAnnotatedType(builder.create());
event.setAnnotatedType(builder.create());
pat.setAnnotatedType(builder.create());