// Store the invoker
interceptorTypeInvokers.put(interceptorType.toString(), invokers);
for (IJClassInterceptor interceptor : allInterceptors) {
String classname = interceptor.getClassName();
JMethod jMethod = interceptor.getJMethod();
// interceptor on the bean or outside ?
if (classMetadata.getClassName().equals(classname)) {
// interceptor is in the bean
// Add the invoker
invokers.add(new BeanInterceptorInvokerImpl(classname, jMethod, classLoader));
} else {
// outside of the bean
// Add the invoker
invokers.add(new StandaloneInterceptorInvokerImpl(classname, jMethod, classLoader));
// An interceptor instance will be required for this
// interceptor class
addInterceptorClass(classname);
}
}
// Add the method invocation call
JMethod interceptedMethod = methodMetadata.getJMethod();
String methodName = interceptedMethod.getName();
if (!methodMetadata.isLifeCycleMethod() && !methodName.contains("$generated")) {
methodName = MethodRenamer.encode(interceptedMethod.getName());
}
JMethod originalMethod = new JMethod(interceptedMethod.getAccess(), methodName, interceptedMethod.getDescriptor(), interceptedMethod.getSignature(), interceptedMethod
.getExceptions());
invokers.add(new BeanBusinessMethodInvokerImpl(classMetadata.getClassName(), originalMethod, classLoader));
// Put in cache the business methods of the bean
this.methods.put(methodSignature, MethodHelper.getMethod(classMetadata.getClassName(), methodMetadata