public class org.springframework.cglib.transform.impl.AddDelegateTransformer extends org.springframework.cglib.transform.ClassEmitterTransformer
{
private static final java.lang.String DELEGATE;
private static final org.springframework.cglib.core.Signature CSTRUCT_OBJECT;
private java.lang.Class[] delegateIf;
private java.lang.Class delegateImpl;
private org.springframework.asm.Type delegateType;
public void <init>(java.lang.Class[], java.lang.Class)
{
org.springframework.cglib.transform.impl.AddDelegateTransformer v;
java.lang.NoSuchMethodException v;
org.springframework.cglib.core.CodeGenerationException v;
java.lang.Class[] v, v;
java.lang.Class v;
org.springframework.asm.Type v;
v := @this: org.springframework.cglib.transform.impl.AddDelegateTransformer;
v := @parameter: java.lang.Class[];
v := @parameter: java.lang.Class;
specialinvoke v.<org.springframework.cglib.transform.ClassEmitterTransformer: void <init>()>();
label:
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/lang/Object;";
virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class[] delegateIf> = v;
v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class delegateImpl> = v;
v = staticinvoke <org.springframework.asm.Type: org.springframework.asm.Type getType(java.lang.Class)>(v);
v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: org.springframework.asm.Type delegateType> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.cglib.core.CodeGenerationException;
specialinvoke v.<org.springframework.cglib.core.CodeGenerationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.NoSuchMethodException from label to label with label;
}
public void begin_class(int, int, java.lang.String, org.springframework.asm.Type, org.springframework.asm.Type[], java.lang.String)
{
org.springframework.asm.Type[] v, v, v;
java.lang.reflect.Method[] v;
int v, v, v, v, v, v, v;
java.lang.String v, v;
java.lang.reflect.Method v, v;
boolean v, v;
java.lang.Class[] v, v, v;
org.springframework.cglib.transform.impl.AddDelegateTransformer v;
java.lang.Class v;
org.springframework.asm.Type v, v;
v := @this: org.springframework.cglib.transform.impl.AddDelegateTransformer;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.asm.Type;
v := @parameter: org.springframework.asm.Type[];
v := @parameter: java.lang.String;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: boolean isInterface(int)>(v);
if v != 0 goto label;
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class[] delegateIf>;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type[] getTypes(java.lang.Class[])>(v);
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type[] add(org.springframework.asm.Type[],org.springframework.asm.Type[])>(v, v);
specialinvoke v.<org.springframework.cglib.transform.ClassEmitterTransformer: void begin_class(int,int,java.lang.String,org.springframework.asm.Type,org.springframework.asm.Type[],java.lang.String)>(v, v, v, v, v, v);
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: org.springframework.asm.Type delegateType>;
virtualinvoke v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: void declare_field(int,java.lang.String,org.springframework.asm.Type,java.lang.Object)>(130, "$CGLIB_DELEGATE", v, null);
v = 0;
label:
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class[] delegateIf>;
v = lengthof v;
if v >= v goto label;
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class[] delegateIf>;
v = v[v];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Method: int getModifiers()>();
v = staticinvoke <java.lang.reflect.Modifier: boolean isAbstract(int)>(v);
if v == 0 goto label;
v = v[v];
specialinvoke v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: void addDelegate(java.lang.reflect.Method)>(v);
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
specialinvoke v.<org.springframework.cglib.transform.ClassEmitterTransformer: void begin_class(int,int,java.lang.String,org.springframework.asm.Type,org.springframework.asm.Type[],java.lang.String)>(v, v, v, v, v, v);
label:
return;
}
public org.springframework.cglib.core.CodeEmitter begin_method(int, org.springframework.cglib.core.Signature, org.springframework.asm.Type[])
{
org.springframework.cglib.core.CodeEmitter v;
org.springframework.cglib.transform.impl.AddDelegateTransformer$1 v;
org.springframework.asm.Type[] v;
org.springframework.cglib.transform.impl.AddDelegateTransformer v;
int v;
org.springframework.cglib.core.Signature v;
java.lang.String v;
boolean v;
v := @this: org.springframework.cglib.transform.impl.AddDelegateTransformer;
v := @parameter: int;
v := @parameter: org.springframework.cglib.core.Signature;
v := @parameter: org.springframework.asm.Type[];
v = specialinvoke v.<org.springframework.cglib.transform.ClassEmitterTransformer: org.springframework.cglib.core.CodeEmitter begin_method(int,org.springframework.cglib.core.Signature,org.springframework.asm.Type[])>(v, v, v);
v = virtualinvoke v.<org.springframework.cglib.core.Signature: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("<init>");
if v == 0 goto label;
v = new org.springframework.cglib.transform.impl.AddDelegateTransformer$1;
specialinvoke v.<org.springframework.cglib.transform.impl.AddDelegateTransformer$1: void <init>(org.springframework.cglib.transform.impl.AddDelegateTransformer,org.springframework.cglib.core.CodeEmitter)>(v, v);
return v;
label:
return v;
}
private void addDelegate(java.lang.reflect.Method)
{
org.springframework.cglib.core.CodeEmitter v;
java.lang.NoSuchMethodException v;
org.springframework.cglib.core.CodeGenerationException v;
org.springframework.asm.Type[] v;
org.springframework.cglib.core.Signature v;
java.lang.String v, v, v, v;
java.lang.reflect.Method v, v;
boolean v;
java.lang.Class[] v, v;
java.lang.IllegalArgumentException v;
org.springframework.cglib.transform.impl.AddDelegateTransformer v;
java.lang.Class v, v, v;
org.springframework.asm.Type v;
v := @this: org.springframework.cglib.transform.impl.AddDelegateTransformer;
v := @parameter: java.lang.reflect.Method;
label:
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: java.lang.Class delegateImpl>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
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.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Method)>(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[])>("Invalid delegate signature \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = new org.springframework.cglib.core.CodeGenerationException;
specialinvoke v.<org.springframework.cglib.core.CodeGenerationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = staticinvoke <org.springframework.cglib.core.ReflectUtils: org.springframework.cglib.core.Signature getSignature(java.lang.reflect.Member)>(v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getExceptionTypes()>();
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type[] getTypes(java.lang.Class[])>(v);
v = specialinvoke v.<org.springframework.cglib.transform.ClassEmitterTransformer: org.springframework.cglib.core.CodeEmitter begin_method(int,org.springframework.cglib.core.Signature,org.springframework.asm.Type[])>(1, v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void getfield(java.lang.String)>("$CGLIB_DELEGATE");
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_args()>();
v = v.<org.springframework.cglib.transform.impl.AddDelegateTransformer: org.springframework.asm.Type delegateType>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke_virtual(org.springframework.asm.Type,org.springframework.cglib.core.Signature)>(v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
return;
catch java.lang.NoSuchMethodException from label to label with label;
}
static void <clinit>()
{
org.springframework.cglib.core.Signature v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.cglib.core.Signature parseSignature(java.lang.String)>("void <init>(Object)");
<org.springframework.cglib.transform.impl.AddDelegateTransformer: org.springframework.cglib.core.Signature CSTRUCT_OBJECT> = v;
return;
}
}