Object instance = getInjectedInstance(type, name, annotationClass, element); assignValue(element, instance); } else if (required) { Class<?> declaringClass = ((Member) element).getDeclaringClass();
Object targetInstance = getInstallTargetInstance(frameOwner, annotation, frame); Method installMethod = annotatedMethod.getMethod(); MethodHandle targetSetterMethod = getInstallTargetSetterMethod(annotation, frame, instanceClass, installMethod); Class<?> targetParameterType = targetSetterMethod.type().parameterList().get(1); handler = createInstallHandler(frameOwner, installMethod, targetParameterType);
protected void injectValues(@SuppressWarnings("unused") FrameOwner frameOwner, ScreenIntrospectionData screenIntrospectionData) { List<InjectElement> injectElements = screenIntrospectionData.getInjectElements(); for (InjectElement entry : injectElements) { doInjection(entry.getElement(), entry.getAnnotationClass()); } }
@Override public void execute(Context context, Frame window) { String loggingId = context.getFullFrameId(); try { if (fragment.getFrameOwner() instanceof AbstractFrame) { Element companionsElem = element.element("companions"); if (companionsElem != null) { StopWatch companionStopWatch = createStopWatch(ScreenLifeCycle.COMPANION, loggingId); initCompanion(companionsElem, (AbstractFrame) fragment.getFrameOwner()); companionStopWatch.stop(); } } StopWatch injectStopWatch = createStopWatch(ScreenLifeCycle.INJECTION, loggingId); FrameOwner controller = fragment.getFrameOwner(); UiControllerDependencyInjector dependencyInjector = beanLocator.getPrototype(UiControllerDependencyInjector.NAME, controller, options); dependencyInjector.inject(); injectStopWatch.stop(); } catch (Throwable e) { throw new RuntimeException("Unable to init custom frame class", e); } } }
targetInstance = UiControllerUtils.getScreenData(frameOwner).getLoader(target); } else { targetInstance = findInstallTarget(target, frame);
case COMPONENT: eventTarget = findEventTarget(frame, target); break;
return createMessageBundle(element, frame);
dependencyInjector.inject();