public class net.sf.cglib.beans.ImmutableBean$Generator extends net.sf.cglib.core.AbstractClassGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: net.sf.cglib.beans.ImmutableBean$Generator
super_class: net.sf.cglib.core.AbstractClassGenerator
{
private static final net.sf.cglib.core.AbstractClassGenerator$Source SOURCE;
descriptor: Lnet/sf/cglib/core/AbstractClassGenerator$Source;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.lang.Object bean;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class target;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new net.sf.cglib.core.AbstractClassGenerator$Source
dup
ldc Lnet/sf/cglib/beans/ImmutableBean;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial net.sf.cglib.core.AbstractClassGenerator$Source.<init>:(Ljava/lang/String;)V
putstatic net.sf.cglib.beans.ImmutableBean$Generator.SOURCE:Lnet/sf/cglib/core/AbstractClassGenerator$Source;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic net.sf.cglib.beans.ImmutableBean$Generator.SOURCE:Lnet/sf/cglib/core/AbstractClassGenerator$Source;
invokespecial net.sf.cglib.core.AbstractClassGenerator.<init>:(Lnet/sf/cglib/core/AbstractClassGenerator$Source;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
public void setBean(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield net.sf.cglib.beans.ImmutableBean$Generator.bean:Ljava/lang/Object;
1: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
putfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
0 3 1 bean Ljava/lang/Object;
MethodParameters:
Name Flags
bean
protected java.lang.ClassLoader getDefaultClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
protected java.security.ProtectionDomain getProtectionDomain();
descriptor: ()Ljava/security/ProtectionDomain;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
invokestatic net.sf.cglib.core.ReflectUtils.getProtectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
public java.lang.Object create();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
aload 1
invokevirtual net.sf.cglib.beans.ImmutableBean$Generator.setNamePrefix:(Ljava/lang/String;)V
2: aload 0
aload 1
invokespecial net.sf.cglib.core.AbstractClassGenerator.create:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
1 3 1 name Ljava/lang/String;
public void generateClass(org.objectweb.asm.ClassVisitor);
descriptor: (Lorg/objectweb/asm/ClassVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
astore 2
start local 2 1: new net.sf.cglib.core.ClassEmitter
dup
aload 1
invokespecial net.sf.cglib.core.ClassEmitter.<init>:(Lorg/objectweb/asm/ClassVisitor;)V
astore 3
start local 3 2: aload 3
bipush 52
3: iconst_1
4: aload 0
invokevirtual net.sf.cglib.beans.ImmutableBean$Generator.getClassName:()Ljava/lang/String;
5: aload 2
6: aconst_null
7: ldc "<generated>"
8: invokevirtual net.sf.cglib.core.ClassEmitter.begin_class:(IILjava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;Ljava/lang/String;)V
9: aload 3
bipush 18
ldc "CGLIB$RWBean"
aload 2
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
10: aload 3
iconst_1
getstatic net.sf.cglib.beans.ImmutableBean.CSTRUCT_OBJECT:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 4
start local 4 11: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
12: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke_constructor:()V
13: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
14: aload 4
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
15: aload 4
aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
16: aload 4
ldc "CGLIB$RWBean"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
17: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
18: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
19: aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.target:Ljava/lang/Class;
invokestatic net.sf.cglib.core.ReflectUtils.getBeanProperties:(Ljava/lang/Class;)[Ljava/beans/PropertyDescriptor;
astore 5
start local 5 20: aload 5
iconst_1
iconst_0
invokestatic net.sf.cglib.core.ReflectUtils.getPropertyMethods:([Ljava/beans/PropertyDescriptor;ZZ)[Ljava/lang/reflect/Method;
astore 6
start local 6 21: aload 5
iconst_0
iconst_1
invokestatic net.sf.cglib.core.ReflectUtils.getPropertyMethods:([Ljava/beans/PropertyDescriptor;ZZ)[Ljava/lang/reflect/Method;
astore 7
start local 7 22: iconst_0
istore 8
start local 8 23: goto 32
24: StackMap locals: net.sf.cglib.beans.ImmutableBean$Generator org.objectweb.asm.ClassVisitor org.objectweb.asm.Type net.sf.cglib.core.ClassEmitter net.sf.cglib.core.CodeEmitter java.beans.PropertyDescriptor[] java.lang.reflect.Method[] java.lang.reflect.Method[] int
StackMap stack:
aload 6
iload 8
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getMethodInfo:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/core/MethodInfo;
astore 9
start local 9 25: aload 3
aload 9
iconst_1
invokestatic net.sf.cglib.core.EmitUtils.begin_method:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/MethodInfo;I)Lnet/sf/cglib/core/CodeEmitter;
astore 4
26: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
27: aload 4
ldc "CGLIB$RWBean"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
28: aload 4
aload 9
invokevirtual net.sf.cglib.core.CodeEmitter.invoke:(Lnet/sf/cglib/core/MethodInfo;)V
29: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
30: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
end local 9 31: iinc 8 1
StackMap locals:
StackMap stack:
32: iload 8
aload 6
arraylength
if_icmplt 24
end local 8 33: iconst_0
istore 8
start local 8 34: goto 40
35: StackMap locals:
StackMap stack:
aload 7
iload 8
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getMethodInfo:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/core/MethodInfo;
astore 9
start local 9 36: aload 3
aload 9
iconst_1
invokestatic net.sf.cglib.core.EmitUtils.begin_method:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/MethodInfo;I)Lnet/sf/cglib/core/CodeEmitter;
astore 4
37: aload 4
getstatic net.sf.cglib.beans.ImmutableBean.ILLEGAL_STATE_EXCEPTION:Lorg/objectweb/asm/Type;
ldc "Bean is immutable"
invokevirtual net.sf.cglib.core.CodeEmitter.throw_exception:(Lorg/objectweb/asm/Type;Ljava/lang/String;)V
38: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
end local 9 39: iinc 8 1
StackMap locals:
StackMap stack:
40: iload 8
aload 7
arraylength
if_icmplt 35
end local 8 41: aload 3
invokevirtual net.sf.cglib.core.ClassEmitter.end_class:()V
42: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
0 43 1 v Lorg/objectweb/asm/ClassVisitor;
1 43 2 targetType Lorg/objectweb/asm/Type;
2 43 3 ce Lnet/sf/cglib/core/ClassEmitter;
11 43 4 e Lnet/sf/cglib/core/CodeEmitter;
20 43 5 descriptors [Ljava/beans/PropertyDescriptor;
21 43 6 getters [Ljava/lang/reflect/Method;
22 43 7 setters [Ljava/lang/reflect/Method;
23 33 8 i I
25 31 9 getter Lnet/sf/cglib/core/MethodInfo;
34 41 8 i I
36 39 9 setter Lnet/sf/cglib/core/MethodInfo;
MethodParameters:
Name Flags
v
protected java.lang.Object firstInstance(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic net.sf.cglib.beans.ImmutableBean.OBJECT_CLASSES:[Ljava/lang/Class;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield net.sf.cglib.beans.ImmutableBean$Generator.bean:Ljava/lang/Object;
aastore
invokestatic net.sf.cglib.core.ReflectUtils.newInstance:(Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
0 1 1 type Ljava/lang/Class;
MethodParameters:
Name Flags
type
protected java.lang.Object nextInstance(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual net.sf.cglib.beans.ImmutableBean$Generator.firstInstance:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/beans/ImmutableBean$Generator;
0 1 1 instance Ljava/lang/Object;
MethodParameters:
Name Flags
instance
}
SourceFile: "ImmutableBean.java"
NestHost: net.sf.cglib.beans.ImmutableBean
InnerClasses:
public Generator = net.sf.cglib.beans.ImmutableBean$Generator of net.sf.cglib.beans.ImmutableBean
protected Source = net.sf.cglib.core.AbstractClassGenerator$Source of net.sf.cglib.core.AbstractClassGenerator