class net.sf.cglib.beans.BulkBeanEmitter extends net.sf.cglib.core.ClassEmitter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: net.sf.cglib.beans.BulkBeanEmitter
super_class: net.sf.cglib.core.ClassEmitter
{
private static final net.sf.cglib.core.Signature GET_PROPERTY_VALUES;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SET_PROPERTY_VALUES;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature CSTRUCT_EXCEPTION;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type BULK_BEAN;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type BULK_BEAN_EXCEPTION;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "void getPropertyValues(Object, Object[])"
invokestatic net.sf.cglib.core.TypeUtils.parseSignature:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
1: putstatic net.sf.cglib.beans.BulkBeanEmitter.GET_PROPERTY_VALUES:Lnet/sf/cglib/core/Signature;
2: ldc "void setPropertyValues(Object, Object[])"
invokestatic net.sf.cglib.core.TypeUtils.parseSignature:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
3: putstatic net.sf.cglib.beans.BulkBeanEmitter.SET_PROPERTY_VALUES:Lnet/sf/cglib/core/Signature;
4: ldc "Throwable, int"
invokestatic net.sf.cglib.core.TypeUtils.parseConstructor:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
5: putstatic net.sf.cglib.beans.BulkBeanEmitter.CSTRUCT_EXCEPTION:Lnet/sf/cglib/core/Signature;
6: ldc "net.sf.cglib.beans.BulkBean"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
7: putstatic net.sf.cglib.beans.BulkBeanEmitter.BULK_BEAN:Lorg/objectweb/asm/Type;
8: ldc "net.sf.cglib.beans.BulkBeanException"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
9: putstatic net.sf.cglib.beans.BulkBeanEmitter.BULK_BEAN_EXCEPTION:Lorg/objectweb/asm/Type;
10: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.objectweb.asm.ClassVisitor, java.lang.String, java.lang.Class, java.lang.String[], java.lang.String[], java.lang.Class[]);
descriptor: (Lorg/objectweb/asm/ClassVisitor;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
invokespecial net.sf.cglib.core.ClassEmitter.<init>:(Lorg/objectweb/asm/ClassVisitor;)V
1: aload 4
arraylength
anewarray java.lang.reflect.Method
astore 7
start local 7 2: aload 5
arraylength
anewarray java.lang.reflect.Method
astore 8
start local 8 3: aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokestatic net.sf.cglib.beans.BulkBeanEmitter.validate:(Ljava/lang/Class;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Method;)V
4: aload 0
bipush 52
iconst_1
aload 2
getstatic net.sf.cglib.beans.BulkBeanEmitter.BULK_BEAN:Lorg/objectweb/asm/Type;
aconst_null
ldc "<generated>"
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.begin_class:(IILjava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;Ljava/lang/String;)V
5: aload 0
invokestatic net.sf.cglib.core.EmitUtils.null_constructor:(Lnet/sf/cglib/core/ClassEmitter;)V
6: aload 0
aload 3
aload 7
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.generateGet:(Ljava/lang/Class;[Ljava/lang/reflect/Method;)V
7: aload 0
aload 3
aload 8
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.generateSet:(Ljava/lang/Class;[Ljava/lang/reflect/Method;)V
8: aload 0
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.end_class:()V
9: return
end local 8 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 10 0 this Lnet/sf/cglib/beans/BulkBeanEmitter;
0 10 1 v Lorg/objectweb/asm/ClassVisitor;
0 10 2 className Ljava/lang/String;
0 10 3 target Ljava/lang/Class;
0 10 4 getterNames [Ljava/lang/String;
0 10 5 setterNames [Ljava/lang/String;
0 10 6 types [Ljava/lang/Class;
2 10 7 getters [Ljava/lang/reflect/Method;
3 10 8 setters [Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
v
className
target
getterNames
setterNames
types
private void generateGet(java.lang.Class, java.lang.reflect.Method[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/reflect/Method;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
getstatic net.sf.cglib.beans.BulkBeanEmitter.GET_PROPERTY_VALUES:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 3
start local 3 1: aload 2
arraylength
ifle 18
2: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
3: aload 3
aload 1
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
4: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.make_local:()Lnet/sf/cglib/core/Local;
astore 4
start local 4 5: aload 3
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.store_local:(Lnet/sf/cglib/core/Local;)V
6: iconst_0
istore 5
start local 5 7: goto 17
8: StackMap locals: net.sf.cglib.core.CodeEmitter net.sf.cglib.core.Local int
StackMap stack:
aload 2
iload 5
aaload
ifnull 16
9: aload 2
iload 5
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getMethodInfo:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/core/MethodInfo;
astore 6
start local 6 10: aload 3
iconst_1
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
11: aload 3
iload 5
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
12: aload 3
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_local:(Lnet/sf/cglib/core/Local;)V
13: aload 3
aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.invoke:(Lnet/sf/cglib/core/MethodInfo;)V
14: aload 3
aload 6
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.Signature.getReturnType:()Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.box:(Lorg/objectweb/asm/Type;)V
15: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.aastore:()V
end local 6 16: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
aload 2
arraylength
if_icmplt 8
end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
19: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
20: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lnet/sf/cglib/beans/BulkBeanEmitter;
0 21 1 target Ljava/lang/Class;
0 21 2 getters [Ljava/lang/reflect/Method;
1 21 3 e Lnet/sf/cglib/core/CodeEmitter;
5 18 4 bean Lnet/sf/cglib/core/Local;
7 18 5 i I
10 16 6 getter Lnet/sf/cglib/core/MethodInfo;
MethodParameters:
Name Flags
target final
getters final
private void generateSet(java.lang.Class, java.lang.reflect.Method[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/reflect/Method;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
getstatic net.sf.cglib.beans.BulkBeanEmitter.SET_PROPERTY_VALUES:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.beans.BulkBeanEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 3
start local 3 1: aload 2
arraylength
ifle 34
2: aload 3
getstatic org.objectweb.asm.Type.INT_TYPE:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.make_local:(Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/Local;
astore 4
start local 4 3: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
4: aload 3
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.store_local:(Lnet/sf/cglib/core/Local;)V
5: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
6: aload 3
aload 1
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
7: aload 3
iconst_1
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
8: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.begin_block:()Lnet/sf/cglib/core/Block;
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: iconst_0
istore 7
start local 7 11: goto 23
12: StackMap locals: net.sf.cglib.beans.BulkBeanEmitter java.lang.Class java.lang.reflect.Method[] net.sf.cglib.core.CodeEmitter net.sf.cglib.core.Local net.sf.cglib.core.Block int int
StackMap stack:
aload 2
iload 7
aaload
ifnull 22
13: aload 2
iload 7
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getMethodInfo:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/core/MethodInfo;
astore 8
start local 8 14: iload 7
iload 6
isub
istore 9
start local 9 15: iload 9
ifle 18
16: aload 3
aload 4
iload 9
invokevirtual net.sf.cglib.core.CodeEmitter.iinc:(Lnet/sf/cglib/core/Local;I)V
17: iload 7
istore 6
18: StackMap locals: net.sf.cglib.core.MethodInfo int
StackMap stack:
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.dup2:()V
19: aload 3
iload 7
invokevirtual net.sf.cglib.core.CodeEmitter.aaload:(I)V
20: aload 3
aload 8
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.Signature.getArgumentTypes:()[Lorg/objectweb/asm/Type;
iconst_0
aaload
invokevirtual net.sf.cglib.core.CodeEmitter.unbox:(Lorg/objectweb/asm/Type;)V
21: aload 3
aload 8
invokevirtual net.sf.cglib.core.CodeEmitter.invoke:(Lnet/sf/cglib/core/MethodInfo;)V
end local 9 end local 8 22: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
aload 2
arraylength
if_icmplt 12
end local 7 24: aload 5
invokevirtual net.sf.cglib.core.Block.end:()V
25: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
26: aload 3
aload 5
getstatic net.sf.cglib.core.Constants.TYPE_THROWABLE:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.catch_exception:(Lnet/sf/cglib/core/Block;Lorg/objectweb/asm/Type;)V
27: aload 3
getstatic net.sf.cglib.beans.BulkBeanEmitter.BULK_BEAN_EXCEPTION:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.new_instance:(Lorg/objectweb/asm/Type;)V
28: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.dup_x1:()V
29: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.swap:()V
30: aload 3
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_local:(Lnet/sf/cglib/core/Local;)V
31: aload 3
getstatic net.sf.cglib.beans.BulkBeanEmitter.BULK_BEAN_EXCEPTION:Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.beans.BulkBeanEmitter.CSTRUCT_EXCEPTION:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_constructor:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
32: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.athrow:()V
end local 6 end local 5 end local 4 33: goto 35
34: StackMap locals: net.sf.cglib.beans.BulkBeanEmitter java.lang.Class java.lang.reflect.Method[] net.sf.cglib.core.CodeEmitter
StackMap stack:
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
35: StackMap locals:
StackMap stack:
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
36: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lnet/sf/cglib/beans/BulkBeanEmitter;
0 37 1 target Ljava/lang/Class;
0 37 2 setters [Ljava/lang/reflect/Method;
1 37 3 e Lnet/sf/cglib/core/CodeEmitter;
3 33 4 index Lnet/sf/cglib/core/Local;
9 33 5 handler Lnet/sf/cglib/core/Block;
10 33 6 lastIndex I
11 24 7 i I
14 22 8 setter Lnet/sf/cglib/core/MethodInfo;
15 22 9 diff I
MethodParameters:
Name Flags
target final
setters final
private static void validate(java.lang.Class, java.lang.String[], java.lang.String[], java.lang.Class[], java.lang.reflect.Method[], java.lang.reflect.Method[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Method;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_m1
istore 6
start local 6 1: aload 2
arraylength
aload 3
arraylength
if_icmpne 2
aload 1
arraylength
aload 3
arraylength
if_icmpeq 3
2: StackMap locals: int
StackMap stack:
new net.sf.cglib.beans.BulkBeanException
dup
ldc "accessor array length must be equal type array length"
iload 6
invokespecial net.sf.cglib.beans.BulkBeanException.<init>:(Ljava/lang/String;I)V
athrow
3: StackMap locals:
StackMap stack:
iconst_0
istore 6
goto 19
4: StackMap locals:
StackMap stack:
aload 1
iload 6
aaload
ifnull 13
5: aload 0
aload 1
iload 6
aaload
aconst_null
invokestatic net.sf.cglib.core.ReflectUtils.findDeclaredMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 7
start local 7 6: aload 7
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
aload 3
iload 6
aaload
if_acmpeq 10
7: new net.sf.cglib.beans.BulkBeanException
dup
new java.lang.StringBuilder
dup
ldc "Specified type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
iload 6
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: ldc " does not match declared type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 6
9: invokespecial net.sf.cglib.beans.BulkBeanException.<init>:(Ljava/lang/String;I)V
athrow
10: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 7
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
ifeq 12
11: new net.sf.cglib.beans.BulkBeanException
dup
ldc "Property is private"
iload 6
invokespecial net.sf.cglib.beans.BulkBeanException.<init>:(Ljava/lang/String;I)V
athrow
12: StackMap locals:
StackMap stack:
aload 4
iload 6
aload 7
aastore
end local 7 13: StackMap locals:
StackMap stack:
aload 2
iload 6
aaload
ifnull 18
14: aload 0
aload 2
iload 6
aaload
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 3
iload 6
aaload
aastore
invokestatic net.sf.cglib.core.ReflectUtils.findDeclaredMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 7
start local 7 15: aload 7
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
ifeq 17
16: new net.sf.cglib.beans.BulkBeanException
dup
ldc "Property is private"
iload 6
invokespecial net.sf.cglib.beans.BulkBeanException.<init>:(Ljava/lang/String;I)V
athrow
17: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 5
iload 6
aload 7
aastore
end local 7 18: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
aload 3
arraylength
if_icmplt 4
20: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
21: pop
22: new net.sf.cglib.beans.BulkBeanException
dup
ldc "Cannot find specified property"
iload 6
invokespecial net.sf.cglib.beans.BulkBeanException.<init>:(Ljava/lang/String;I)V
athrow
23: StackMap locals:
StackMap stack:
return
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 24 0 target Ljava/lang/Class;
0 24 1 getters [Ljava/lang/String;
0 24 2 setters [Ljava/lang/String;
0 24 3 types [Ljava/lang/Class;
0 24 4 getters_out [Ljava/lang/reflect/Method;
0 24 5 setters_out [Ljava/lang/reflect/Method;
1 24 6 i I
6 13 7 method Ljava/lang/reflect/Method;
15 18 7 method Ljava/lang/reflect/Method;
Exception table:
from to target type
3 20 21 Class java.lang.NoSuchMethodException
MethodParameters:
Name Flags
target
getters
setters
types
getters_out
setters_out
}
SourceFile: "BulkBeanEmitter.java"