class AbstractProducerTransformer {

    @OnClassLoadEvent(classNameRegexp = "org.apache.webbeans.portable.AbstractProducer")
    public static void patchProxyFactory(CtClass ctClass, ClassPool classPool) throws NotFoundException, CannotCompileException {
        if (HaCdiCommons.isJakarta(classPool)) {
            return;
        }
        CtMethod getProxyClassMethod = ctClass.getDeclaredMethod("defineInterceptorStack");
        getProxyClassMethod.instrument(
            new ExprEditor() {
                public void edit(FieldAccess e) throws CannotCompileException {<FILL_FUNCTION_BODY>}
            });
    }

}

                    if (e.isWriter() && "methodInterceptors".equals(e.getFieldName())) {
                        e.replace("{ " +
                            "if($0.methodInterceptors==null) $0.methodInterceptors=new java.util.HashMap();" +
                            "$0.methodInterceptors.clear();" +
                            "$0.methodInterceptors.putAll($1);" +
                        "}");
                    }
                
<no_super_class>