protected void createProxyMethodWithInterceptors(final NewNestedType proxy, final Method method, final List<Aspect> aspects) {
Checker.notNull("parameter:proxy", proxy);
Checker.notNull("parameter:method", method);
Checker.notNull("parameter:advices", aspects);
final NewMethod newMethod = method.copy(proxy);
newMethod.setAbstract(false);
newMethod.setFinal(true);
newMethod.setNative(false);
GeneratorHelper.renameParametersToParameterN(newMethod);
GeneratorHelper.makeAllParametersFinal(newMethod);
final ProxyInterceptedMethodTemplatedFile body = new ProxyInterceptedMethodTemplatedFile();
body.setAspects(aspects);
body.setBeanFactory(this.getBeanFactory());
body.setMethod(newMethod);
body.setTargetMethod(method);
final Type methodInterceptor = this.getMethodInterceptor();
final List<Type> methodInvocationParameterList = Arrays.asList(new Type[] { this.getMethodInvocation() });
final Method invoke = methodInterceptor.getMethod(Constants.METHOD_INTERCEPTOR_INVOKE, methodInvocationParameterList);
final MethodParameter target = (MethodParameter) invoke.getParameters().get(0);
body.setTarget(target);
newMethod.setBody(body);
}