@Override public ObjectCreator<T> invoke() { validateConstructorForAutobuild(constructor); ObjectCreator[] constructorParameters = calculateParameters(locator, resources, constructor.getParameterTypes(), constructor.getGenericParameterTypes(), constructor.getParameterAnnotations(), tracker); Invokable<T> core = new ConstructorInvoker<T>(constructor, constructorParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); ConstructionPlan<T> plan = new ConstructionPlan(tracker, description, wrapped); extendPlanForInjectedFields(plan, tracker, locator, resources, constructor.getDeclaringClass()); extendPlanForPostInjectionMethods(plan, tracker, locator, resources, constructor.getDeclaringClass()); return plan; } });
@Override public ObjectCreator<T> invoke() { validateConstructorForAutobuild(constructor); ObjectCreator[] constructorParameters = calculateParameters(locator, resources, constructor.getParameterTypes(), constructor.getGenericParameterTypes(), constructor.getParameterAnnotations(), tracker); Invokable<T> core = new ConstructorInvoker<T>(constructor, constructorParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); ConstructionPlan<T> plan = new ConstructionPlan(tracker, description, wrapped); extendPlanForInjectedFields(plan, tracker, locator, resources, constructor.getDeclaringClass()); extendPlanForPostInjectionMethods(plan, tracker, locator, resources, constructor.getDeclaringClass()); return plan; } });
@Override public ObjectCreator<T> invoke() { ObjectCreator[] methodParameters = calculateParametersForMethod(method, locator, resources, tracker); Invokable<T> core = new MethodInvoker<T>(instance, method, methodParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); return new ConstructionPlan(tracker, description, wrapped); } });
@Override public ObjectCreator<T> invoke() { ObjectCreator[] methodParameters = calculateParametersForMethod(method, locator, resources, tracker); Invokable<T> core = new MethodInvoker<T>(instance, method, methodParameters); Invokable<T> wrapped = logger == null ? core : new LoggingInvokableWrapper<T>(logger, description, core); return new ConstructionPlan(tracker, description, wrapped); } });