class org.apache.commons.digester3.ObjectCreateRule$ProxyManager
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.digester3.ObjectCreateRule$ProxyManager
super_class: java.lang.Object
{
private final java.lang.Class<?> clazz;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private final java.lang.reflect.Constructor<?> constructor;
descriptor: Ljava/lang/reflect/Constructor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/reflect/Constructor<*>;
private final java.lang.Object[] templateConstructorArguments;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.digester3.Digester digester;
descriptor: Lorg/apache/commons/digester3/Digester;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean hasDefaultConstructor;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private net.sf.cglib.proxy.Factory factory;
descriptor: Lnet/sf/cglib/proxy/Factory;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.Class<?>, java.lang.reflect.Constructor<?>, [], org.apache.commons.digester3.Digester);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;Lorg/apache/commons/digester3/Digester;)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.clazz:Ljava/lang/Class;
2: aload 0
aload 1
iconst_0
anewarray java.lang.Class
invokestatic org.apache.commons.beanutils.ConstructorUtils.getAccessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
ifnull 3
iconst_1
goto 4
StackMap locals: org.apache.commons.digester3.ObjectCreateRule$ProxyManager java.lang.Class java.lang.reflect.Constructor java.lang.Object[] org.apache.commons.digester3.Digester
StackMap stack: org.apache.commons.digester3.ObjectCreateRule$ProxyManager
3: iconst_0
StackMap locals: org.apache.commons.digester3.ObjectCreateRule$ProxyManager java.lang.Class java.lang.reflect.Constructor java.lang.Object[] org.apache.commons.digester3.Digester
StackMap stack: org.apache.commons.digester3.ObjectCreateRule$ProxyManager int
4: putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.hasDefaultConstructor:Z
5: aload 0
aload 2
putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.constructor:Ljava/lang/reflect/Constructor;
6: aload 2
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
astore 5
start local 5 7: aload 0
aload 5
arraylength
anewarray java.lang.Object
putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
8: aload 3
ifnonnull 21
9: iconst_0
istore 6
start local 6 10: goto 19
11: StackMap locals: java.lang.Class[] int
StackMap stack:
aload 5
iload 6
aaload
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
iload 6
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
aastore
13: goto 18
14: StackMap locals:
StackMap stack:
aload 5
iload 6
aaload
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 17
15: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
iload 6
ldc "0"
aload 5
iload 6
aaload
invokestatic org.apache.commons.beanutils.ConvertUtils.convert:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
aastore
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
iload 6
aconst_null
aastore
18: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
arraylength
if_icmplt 11
end local 6 20: goto 28
21: StackMap locals:
StackMap stack:
aload 3
arraylength
aload 5
arraylength
if_icmpeq 27
22: new java.lang.IllegalArgumentException
dup
23: ldc "wrong number of constructor arguments specified: %s instead of %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
24: aload 3
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 5
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
25: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
26: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 3
iconst_0
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
invokestatic org.apache.commons.digester3.ObjectCreateRule.convertTo:([Ljava/lang/Class;[Ljava/lang/Object;)V
29: aload 0
aload 4
putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.digester:Lorg/apache/commons/digester3/Digester;
30: return
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 31 0 this Lorg/apache/commons/digester3/ObjectCreateRule$ProxyManager;
0 31 1 clazz Ljava/lang/Class<*>;
0 31 2 constructor Ljava/lang/reflect/Constructor<*>;
0 31 3 constructorArguments [Ljava/lang/Object;
0 31 4 digester Lorg/apache/commons/digester3/Digester;
7 31 5 argTypes [Ljava/lang/Class;
10 20 6 i I
Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Constructor<*>;[Ljava/lang/Object;Lorg/apache/commons/digester3/Digester;)V
MethodParameters:
Name Flags
clazz
constructor
constructorArguments
digester
java.lang.Object createProxy();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
arraylength
anewarray java.lang.Object
astore 1
start local 1 1: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.templateConstructorArguments:[Ljava/lang/Object;
iconst_0
aload 1
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.digester:Lorg/apache/commons/digester3/Digester;
aload 1
invokevirtual org.apache.commons.digester3.Digester.pushParams:([Ljava/lang/Object;)V
3: new org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback
dup
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.constructor:Ljava/lang/reflect/Constructor;
aload 1
invokespecial org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback.<init>:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)V
4: astore 2
start local 2 5: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.factory:Lnet/sf/cglib/proxy/Factory;
ifnonnull 17
6: new net.sf.cglib.proxy.Enhancer
dup
invokespecial net.sf.cglib.proxy.Enhancer.<init>:()V
astore 4
start local 4 7: aload 4
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.clazz:Ljava/lang/Class;
invokevirtual net.sf.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
8: aload 4
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.setCallback:(Lnet/sf/cglib/proxy/Callback;)V
9: aload 4
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.digester:Lorg/apache/commons/digester3/Digester;
invokevirtual org.apache.commons.digester3.Digester.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual net.sf.cglib.proxy.Enhancer.setClassLoader:(Ljava/lang/ClassLoader;)V
10: aload 4
iconst_0
invokevirtual net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction:(Z)V
11: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.hasDefaultConstructor:Z
ifeq 14
12: aload 4
invokevirtual net.sf.cglib.proxy.Enhancer.create:()Ljava/lang/Object;
astore 3
start local 3 13: goto 15
end local 3 14: StackMap locals: org.apache.commons.digester3.ObjectCreateRule$ProxyManager java.lang.Object[] org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback top net.sf.cglib.proxy.Enhancer
StackMap stack:
aload 4
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.constructor:Ljava/lang/reflect/Constructor;
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.create:([Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 15: StackMap locals: org.apache.commons.digester3.ObjectCreateRule$ProxyManager java.lang.Object[] org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback java.lang.Object net.sf.cglib.proxy.Enhancer
StackMap stack:
aload 0
aload 3
checkcast net.sf.cglib.proxy.Factory
putfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.factory:Lnet/sf/cglib/proxy/Factory;
16: aload 3
areturn
end local 4 end local 3 17: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.hasDefaultConstructor:Z
ifeq 20
18: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.factory:Lnet/sf/cglib/proxy/Factory;
aload 2
invokeinterface net.sf.cglib.proxy.Factory.newInstance:(Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
astore 3
start local 3 19: goto 23
end local 3 20: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.factory:Lnet/sf/cglib/proxy/Factory;
aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.constructor:Ljava/lang/reflect/Constructor;
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
21: aload 1
iconst_1
anewarray net.sf.cglib.proxy.Callback
dup
iconst_0
aload 2
aastore
22: invokeinterface net.sf.cglib.proxy.Factory.newInstance:([Ljava/lang/Class;[Ljava/lang/Object;[Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
astore 3
start local 3 23: StackMap locals: java.lang.Object
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/commons/digester3/ObjectCreateRule$ProxyManager;
1 24 1 constructorArguments [Ljava/lang/Object;
5 24 2 callback Lorg/apache/commons/digester3/ObjectCreateRule$DeferredConstructionCallback;
13 14 3 result Ljava/lang/Object;
15 17 3 result Ljava/lang/Object;
19 20 3 result Ljava/lang/Object;
23 24 3 result Ljava/lang/Object;
7 17 4 enhancer Lnet/sf/cglib/proxy/Enhancer;
void finalize(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.commons.digester3.ObjectCreateRule$ProxyManager.digester:Lorg/apache/commons/digester3/Digester;
invokevirtual org.apache.commons.digester3.Digester.popParams:()[Ljava/lang/Object;
pop
1: aload 1
checkcast net.sf.cglib.proxy.Factory
iconst_0
invokeinterface net.sf.cglib.proxy.Factory.getCallback:(I)Lnet/sf/cglib/proxy/Callback;
checkcast org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback
invokevirtual org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback.establishDelegate:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/digester3/ObjectCreateRule$ProxyManager;
0 3 1 proxy Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
proxy
}
SourceFile: "ObjectCreateRule.java"
NestHost: org.apache.commons.digester3.ObjectCreateRule
InnerClasses:
private DeferredConstructionCallback = org.apache.commons.digester3.ObjectCreateRule$DeferredConstructionCallback of org.apache.commons.digester3.ObjectCreateRule
private ProxyManager = org.apache.commons.digester3.ObjectCreateRule$ProxyManager of org.apache.commons.digester3.ObjectCreateRule