class org.springframework.cglib.proxy.InvocationHandlerGenerator extends java.lang.Object implements org.springframework.cglib.proxy.CallbackGenerator
{
public static final org.springframework.cglib.proxy.InvocationHandlerGenerator INSTANCE;
private static final org.springframework.asm.Type INVOCATION_HANDLER;
private static final org.springframework.asm.Type UNDECLARED_THROWABLE_EXCEPTION;
private static final org.springframework.asm.Type METHOD;
private static final org.springframework.cglib.core.Signature INVOKE;
void <init>()
{
org.springframework.cglib.proxy.InvocationHandlerGenerator v;
v := @this: org.springframework.cglib.proxy.InvocationHandlerGenerator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void generate(org.springframework.cglib.core.ClassEmitter, org.springframework.cglib.proxy.CallbackGenerator$Context, java.util.List)
{
org.springframework.cglib.core.CodeEmitter v;
org.springframework.cglib.proxy.CallbackGenerator$Context v;
org.springframework.asm.Type[] v;
int v;
org.springframework.cglib.core.Signature v, v, v;
java.lang.String v, v;
org.springframework.cglib.core.ClassEmitter v;
boolean v;
java.util.Iterator v;
java.util.List v;
java.lang.Object v;
org.springframework.cglib.core.Block v;
org.springframework.cglib.proxy.InvocationHandlerGenerator v;
org.springframework.asm.Type v, v, v, v;
v := @this: org.springframework.cglib.proxy.InvocationHandlerGenerator;
v := @parameter: org.springframework.cglib.core.ClassEmitter;
v := @parameter: org.springframework.cglib.proxy.CallbackGenerator$Context;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: org.springframework.cglib.core.Signature getImplSignature(org.springframework.cglib.core.MethodInfo)>(v);
v = virtualinvoke v.<org.springframework.cglib.core.Signature: java.lang.String getName()>();
v = <org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type METHOD>;
virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: void declare_field(int,java.lang.String,org.springframework.asm.Type,java.lang.Object)>(26, v, v, null);
v = interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: org.springframework.cglib.core.CodeEmitter beginMethod(org.springframework.cglib.core.ClassEmitter,org.springframework.cglib.core.MethodInfo)>(v, v);
v = virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: org.springframework.cglib.core.Block begin_block()>();
v = interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: int getIndex(org.springframework.cglib.core.MethodInfo)>(v);
interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: void emitCallback(org.springframework.cglib.core.CodeEmitter,int)>(v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
v = virtualinvoke v.<org.springframework.cglib.core.Signature: java.lang.String getName()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void getfield(java.lang.String)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void create_arg_array()>();
v = <org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type INVOCATION_HANDLER>;
v = <org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.cglib.core.Signature INVOKE>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke_interface(org.springframework.asm.Type,org.springframework.cglib.core.Signature)>(v, v);
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: org.springframework.cglib.core.Signature getSignature()>();
v = virtualinvoke v.<org.springframework.cglib.core.Signature: org.springframework.asm.Type getReturnType()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void unbox(org.springframework.asm.Type)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.Block: void end()>();
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: org.springframework.asm.Type[] getExceptionTypes()>();
v = <org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type UNDECLARED_THROWABLE_EXCEPTION>;
staticinvoke <org.springframework.cglib.core.EmitUtils: void wrap_undeclared_throwable(org.springframework.cglib.core.CodeEmitter,org.springframework.cglib.core.Block,org.springframework.asm.Type[],org.springframework.asm.Type)>(v, v, v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
goto label;
label:
return;
}
public void generateStatic(org.springframework.cglib.core.CodeEmitter, org.springframework.cglib.proxy.CallbackGenerator$Context, java.util.List)
{
org.springframework.cglib.core.CodeEmitter v;
java.util.Iterator v;
org.springframework.cglib.proxy.CallbackGenerator$Context v;
java.util.List v;
java.lang.Object v;
org.springframework.cglib.core.Signature v;
java.lang.String v;
org.springframework.cglib.proxy.InvocationHandlerGenerator v;
boolean v;
v := @this: org.springframework.cglib.proxy.InvocationHandlerGenerator;
v := @parameter: org.springframework.cglib.core.CodeEmitter;
v := @parameter: org.springframework.cglib.proxy.CallbackGenerator$Context;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
staticinvoke <org.springframework.cglib.core.EmitUtils: void load_method(org.springframework.cglib.core.CodeEmitter,org.springframework.cglib.core.MethodInfo)>(v, v);
v = interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: org.springframework.cglib.core.Signature getImplSignature(org.springframework.cglib.core.MethodInfo)>(v);
v = virtualinvoke v.<org.springframework.cglib.core.Signature: java.lang.String getName()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void putfield(java.lang.String)>(v);
goto label;
label:
return;
}
static void <clinit>()
{
org.springframework.cglib.core.Signature v;
org.springframework.cglib.proxy.InvocationHandlerGenerator v;
org.springframework.asm.Type v, v, v;
v = new org.springframework.cglib.proxy.InvocationHandlerGenerator;
specialinvoke v.<org.springframework.cglib.proxy.InvocationHandlerGenerator: void <init>()>();
<org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.cglib.proxy.InvocationHandlerGenerator INSTANCE> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type parseType(java.lang.String)>("org.springframework.cglib.proxy.InvocationHandler");
<org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type INVOCATION_HANDLER> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type parseType(java.lang.String)>("org.springframework.cglib.proxy.UndeclaredThrowableException");
<org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type UNDECLARED_THROWABLE_EXCEPTION> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type parseType(java.lang.String)>("java.lang.reflect.Method");
<org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.asm.Type METHOD> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.cglib.core.Signature parseSignature(java.lang.String)>("Object invoke(Object, java.lang.reflect.Method, Object[])");
<org.springframework.cglib.proxy.InvocationHandlerGenerator: org.springframework.cglib.core.Signature INVOKE> = v;
return;
}
}