class org.springframework.cglib.proxy.LazyLoaderGenerator extends java.lang.Object implements org.springframework.cglib.proxy.CallbackGenerator
{
public static final org.springframework.cglib.proxy.LazyLoaderGenerator INSTANCE;
private static final org.springframework.cglib.core.Signature LOAD_OBJECT;
private static final org.springframework.asm.Type LAZY_LOADER;
void <init>()
{
org.springframework.cglib.proxy.LazyLoaderGenerator v;
v := @this: org.springframework.cglib.proxy.LazyLoaderGenerator;
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, v;
org.springframework.asm.Label v;
org.springframework.cglib.proxy.CallbackGenerator$Context v;
java.lang.Integer v;
java.util.HashSet v;
int v, v, v;
org.springframework.cglib.core.ClassInfo v;
org.springframework.cglib.core.Signature v, v, v;
java.lang.String v;
org.springframework.cglib.core.ClassEmitter v;
boolean v, v, v;
java.util.Iterator v, v;
org.springframework.cglib.proxy.LazyLoaderGenerator v;
java.util.List v;
java.lang.Object v, v;
org.springframework.asm.Type v, v, v;
v := @this: org.springframework.cglib.proxy.LazyLoaderGenerator;
v := @parameter: org.springframework.cglib.core.ClassEmitter;
v := @parameter: org.springframework.cglib.proxy.CallbackGenerator$Context;
v := @parameter: java.util.List;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
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 = virtualinvoke v.<org.springframework.cglib.core.MethodInfo: int getModifiers()>();
v = staticinvoke <org.springframework.cglib.core.TypeUtils: boolean isProtected(int)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: int getIndex(org.springframework.cglib.core.MethodInfo)>(v);
v = new java.lang.Integer;
specialinvoke v.<java.lang.Integer: void <init>(int)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
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);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void dup()>();
v = specialinvoke v.<org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.cglib.core.Signature loadMethod(int)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke_virtual_this(org.springframework.cglib.core.Signature)>(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()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Set: 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 = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("CGLIB$LAZY_LOADER_\u0001");
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_OBJECT>;
virtualinvoke v.<org.springframework.cglib.core.ClassEmitter: void declare_field(int,java.lang.String,org.springframework.asm.Type,java.lang.Object)>(2, v, v, null);
v = specialinvoke v.<org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.cglib.core.Signature loadMethod(int)>(v);
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[])>(50, v, null);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void getfield(java.lang.String)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void dup()>();
v = virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: org.springframework.asm.Label make_label()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void ifnonnull(org.springframework.asm.Label)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void pop()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void load_this()>();
interfaceinvoke v.<org.springframework.cglib.proxy.CallbackGenerator$Context: void emitCallback(org.springframework.cglib.core.CodeEmitter,int)>(v, v);
v = <org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.asm.Type LAZY_LOADER>;
v = <org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.cglib.core.Signature LOAD_OBJECT>;
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void invoke_interface(org.springframework.asm.Type,org.springframework.cglib.core.Signature)>(v, v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void dup_x1()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void putfield(java.lang.String)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void mark(org.springframework.asm.Label)>(v);
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void return_value()>();
virtualinvoke v.<org.springframework.cglib.core.CodeEmitter: void end_method()>();
goto label;
label:
return;
}
private org.springframework.cglib.core.Signature loadMethod(int)
{
int v;
org.springframework.cglib.core.Signature v;
java.lang.String v;
org.springframework.asm.Type[] v;
org.springframework.cglib.proxy.LazyLoaderGenerator v;
org.springframework.asm.Type v;
v := @this: org.springframework.cglib.proxy.LazyLoaderGenerator;
v := @parameter: int;
v = new org.springframework.cglib.core.Signature;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("CGLIB$LOAD_PRIVATE_\u0001");
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type TYPE_OBJECT>;
v = <org.springframework.cglib.core.Constants: org.springframework.asm.Type[] TYPES_EMPTY>;
specialinvoke v.<org.springframework.cglib.core.Signature: void <init>(java.lang.String,org.springframework.asm.Type,org.springframework.asm.Type[])>(v, v, v);
return v;
}
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.List v;
org.springframework.cglib.proxy.CallbackGenerator$Context v;
org.springframework.cglib.proxy.LazyLoaderGenerator v;
v := @this: org.springframework.cglib.proxy.LazyLoaderGenerator;
v := @parameter: org.springframework.cglib.core.CodeEmitter;
v := @parameter: org.springframework.cglib.proxy.CallbackGenerator$Context;
v := @parameter: java.util.List;
return;
}
static void <clinit>()
{
org.springframework.cglib.core.Signature v;
org.springframework.cglib.proxy.LazyLoaderGenerator v;
org.springframework.asm.Type v;
v = new org.springframework.cglib.proxy.LazyLoaderGenerator;
specialinvoke v.<org.springframework.cglib.proxy.LazyLoaderGenerator: void <init>()>();
<org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.cglib.proxy.LazyLoaderGenerator INSTANCE> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.cglib.core.Signature parseSignature(java.lang.String)>("Object loadObject()");
<org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.cglib.core.Signature LOAD_OBJECT> = v;
v = staticinvoke <org.springframework.cglib.core.TypeUtils: org.springframework.asm.Type parseType(java.lang.String)>("org.springframework.cglib.proxy.LazyLoader");
<org.springframework.cglib.proxy.LazyLoaderGenerator: org.springframework.asm.Type LAZY_LOADER> = v;
return;
}
}