public class org.springframework.cglib.reflect.MethodDelegate$Generator extends org.springframework.cglib.core.AbstractClassGenerator
{
private static final org.springframework.cglib.core.AbstractClassGenerator$Source SOURCE;
private static final org.springframework.asm.Type METHOD_DELEGATE;
private static final org.springframework.cglib.core.Signature NEW_INSTANCE;
private java.lang.Object target;
private java.lang.Class targetClass;
private java.lang.String methodName;
private java.lang.Class iface;
public void <init>()
{
org.springframework.cglib.reflect.MethodDelegate$Generator v;
org.springframework.cglib.core.AbstractClassGenerator$Source v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v = <org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.cglib.core.AbstractClassGenerator$Source SOURCE>;
specialinvoke v.<org.springframework.cglib.core.AbstractClassGenerator: void <init>(org.springframework.cglib.core.AbstractClassGenerator$Source)>(v);
return;
}
public void setTarget(java.lang.Object)
{
java.lang.Class v;
java.lang.Object v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.Object;
v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Object target> = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass> = v;
return;
}
public void setTargetClass(java.lang.Class)
{
java.lang.Class v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.Class;
v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass> = v;
return;
}
public void setMethodName(java.lang.String)
{
java.lang.String v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.String;
v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.String methodName> = v;
return;
}
public void setInterface(java.lang.Class)
{
java.lang.Class v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.Class;
v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class iface> = v;
return;
}
protected java.lang.ClassLoader getDefaultClassLoader()
{
java.lang.Class v;
java.lang.ClassLoader v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass>;
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
return v;
}
protected java.security.ProtectionDomain getProtectionDomain()
{
java.lang.Class v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
java.security.ProtectionDomain v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass>;
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: java.security.ProtectionDomain getProtectionDomain(java.lang.Class)>(v);
return v;
}
public org.springframework.cglib.reflect.MethodDelegate create()
{
org.springframework.cglib.reflect.MethodDelegate$Generator v;
org.springframework.cglib.reflect.MethodDelegate$MethodDelegateKey v;
java.lang.Class v, v, v;
java.lang.Object v, v;
java.lang.String v, v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<org.springframework.cglib.reflect.MethodDelegate$Generator: void setNamePrefix(java.lang.String)>(v);
v = <org.springframework.cglib.reflect.MethodDelegate: org.springframework.cglib.reflect.MethodDelegate$MethodDelegateKey KEY_FACTORY>;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass>;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.String methodName>;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class iface>;
v = interfaceinvoke v.<org.springframework.cglib.reflect.MethodDelegate$MethodDelegateKey: java.lang.Object newInstance(java.lang.Class,java.lang.String,java.lang.Class)>(v, v, v);
v = specialinvoke v.<org.springframework.cglib.core.AbstractClassGenerator: java.lang.Object create(java.lang.Object)>(v);
return v;
}
protected java.lang.Object firstInstance(java.lang.Class)
{
org.springframework.cglib.reflect.MethodDelegate$Generator v;
java.lang.Class v;
java.lang.Object v, v;
org.springframework.cglib.reflect.MethodDelegate v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.Class;
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: java.lang.Object newInstance(java.lang.Class)>(v);
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Object target>;
v = virtualinvoke v.<org.springframework.cglib.reflect.MethodDelegate: org.springframework.cglib.reflect.MethodDelegate newInstance(java.lang.Object)>(v);
return v;
}
protected java.lang.Object nextInstance(java.lang.Object)
{
org.springframework.cglib.reflect.MethodDelegate$Generator v;
java.lang.Object v, v;
org.springframework.cglib.reflect.MethodDelegate v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Object target>;
v = virtualinvoke v.<org.springframework.cglib.reflect.MethodDelegate: org.springframework.cglib.reflect.MethodDelegate newInstance(java.lang.Object)>(v);
return v;
}
public void generateClass(org.springframework.asm.ClassVisitor) throws java.lang.NoSuchMethodException
{
org.springframework.cglib.core.CodeEmitter v, v, v;
org.springframework.cglib.core.MethodInfo v, v;
java.lang.reflect.Method[] v;
org.springframework.cglib.core.ClassInfo v;
java.lang.reflect.Method v, v, v;
org.springframework.cglib.core.ClassEmitter v;
boolean v, v, v, v;
org.springframework.cglib.reflect.MethodDelegate$Generator v;
org.springframework.asm.Type v, v, v, v, v, v, v;
org.springframework.asm.ClassVisitor v;
org.springframework.asm.Type[] v;
short v;
int v, v, v;
org.springframework.cglib.core.Signature v, v;
java.lang.String v, v, v, v, v;
java.lang.Class[] v;
java.lang.IllegalArgumentException v, v;
java.lang.Class v, v, v, v, v, v;
java.lang.Object v;
v := @this: org.springframework.cglib.reflect.MethodDelegate$Generator;
v := @parameter: org.springframework.asm.ClassVisitor;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class iface>;
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: java.lang.reflect.Method findInterfaceMethod(java.lang.Class)>(v);
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class targetClass>;
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.String methodName>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("incompatible return types");
throw v;
label:
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: org.springframework.cglib.core.MethodInfo getMethodInfo(java.lang.reflect.Member)>(v);
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: int getModifiers()>();
v = staticinvoke <org.springframework.cglib.core.TypeUtils: boolean isStatic(int)>(v);
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Object target>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v ^ v;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
if v == 0 goto label;
v = "not ";
goto label;
label:
v = "";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Static method \u0001expected");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.springframework.cglib.core.ClassEmitter;
specialinvoke v.<org.springframework.cglib.core.ClassEmitter: void <init>(org.springframework.asm.ClassVisitor)>(v);
v = virtualinvoke v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.String getClassName()>();
v = <org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.asm.Type METHOD_DELEGATE>;
v = newarray (org.springframework.asm.Type)[1];
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class iface>;
v = staticinvoke <org.springframework.asm.Type: org.springframework.asm.Type getType(java.lang.Class)>(v);
v[0] = v;
virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: void begin_class(int,int,java.lang.String,org.springframework.asm.Type,org.springframework.asm.Type[],java.lang.String)>(46, 1, v, v, v, "<generated>");
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_STRING>;
virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: void declare_field(int,java.lang.String,org.springframework.asm.Type,java.lang.Object)>(26, "eqMethod", v, null);
staticinvoke <org.springframework.cglib.core.EmitUtils: void null_constructor(org.springframework.cglib.core.ClassEmitter)>(v);
v = v.<org.springframework.cglib.reflect.MethodDelegate$Generator: java.lang.Class iface>;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getDeclaredMethods()>();
v = v[0];
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: org.springframework.cglib.core.MethodInfo getMethodInfo(java.lang.reflect.Member)>(v);
v = 1;
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: int getModifiers()>();
v = v & 128;
if v != 128 goto label;
v = 129;
label:
v = staticinvoke <org.springframework.cglib.core.EmitUtils: org.springframework.cglib.core.CodeEmitter begin_method(org.springframework.cglib.core.ClassEmitter,org.springframework.cglib.core.MethodInfo,int)>(v, v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_OBJECT>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void super_getfield(java.lang.String,org.springframework.asm.Type)>("target", v);
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: org.springframework.cglib.core.ClassInfo getClassInfo()>();
v = virtualinvoke v.<org.springframework.cglib.core.ClassInfo: org.springframework.asm.Type getType()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void checkcast(org.springframework.asm.Type)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_args()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke(org.springframework.cglib.core.MethodInfo)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
v = <org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.cglib.core.Signature NEW_INSTANCE>;
v = virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: org.springframework.cglib.core.CodeEmitter begin_method(int,org.springframework.cglib.core.Signature,org.springframework.asm.Type[])>(1, v, null);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void new_instance_this()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void dup()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void dup2()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke_constructor_this()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void getfield(java.lang.String)>("eqMethod");
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_STRING>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void super_putfield(java.lang.String,org.springframework.asm.Type)>("eqMethod", v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_arg(int)>(0);
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_OBJECT>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void super_putfield(java.lang.String,org.springframework.asm.Type)>("target", v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
v = virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: org.springframework.cglib.core.CodeEmitter begin_static()>();
v = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: org.springframework.cglib.core.Signature getSignature()>();
v = virtualinvoke v.<org.springframework.cglib.core.Signature: java.lang.String toString()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void push(java.lang.String)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void putfield(java.lang.String)>("eqMethod");
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: void end_class()>();
return;
}
static void <clinit>()
{
org.springframework.cglib.core.AbstractClassGenerator$Source v;
org.springframework.asm.Type[] v;
java.lang.Class v;
org.springframework.cglib.core.Signature v;
java.lang.String v;
org.springframework.asm.Type v, v, v;
v = new org.springframework.cglib.core.AbstractClassGenerator$Source;
v = class "Lorg/springframework/cglib/reflect/MethodDelegate;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.springframework.cglib.core.AbstractClassGenerator$Source: void <init>(java.lang.String)>(v);
<org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.cglib.core.AbstractClassGenerator$Source SOURCE> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type parseType(java.lang.String)>("org.springframework.cglib.reflect.MethodDelegate");
<org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.asm.Type METHOD_DELEGATE> = v;
v = new org.springframework.cglib.core.Signature;
v = <org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.asm.Type METHOD_DELEGATE>;
v = newarray (org.springframework.asm.Type)[1];
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_OBJECT>;
v[0] = v;
specialinvoke v.<org.springframework.cglib.core.Signature: void <init>(java.lang.String,org.springframework.asm.Type,org.springframework.asm.Type[])>("newInstance", v, v);
<org.springframework.cglib.reflect.MethodDelegate$Generator: org.springframework.cglib.core.Signature NEW_INSTANCE> = v;
return;
}
}