class javassist.CtNewClass extends javassist.CtClassType
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: javassist.CtNewClass
super_class: javassist.CtClassType
{
protected boolean hasConstructor;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
void <init>(java.lang.String, javassist.ClassPool, boolean, javassist.CtClass);
descriptor: (Ljava/lang/String;Ljavassist/ClassPool;ZLjavassist/CtClass;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokespecial javassist.CtClassType.<init>:(Ljava/lang/String;Ljavassist/ClassPool;)V
1: aload 0
iconst_1
putfield javassist.CtNewClass.wasChanged:Z
2: iload 3
ifne 3
aload 4
ifnonnull 5
3: StackMap locals: javassist.CtNewClass java.lang.String javassist.ClassPool int javassist.CtClass
StackMap stack:
aconst_null
astore 5
start local 5 4: goto 6
end local 5 5: StackMap locals:
StackMap stack:
aload 4
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
astore 5
start local 5 6: StackMap locals: java.lang.String
StackMap stack:
aload 0
new javassist.bytecode.ClassFile
dup
iload 3
aload 1
aload 5
invokespecial javassist.bytecode.ClassFile.<init>:(ZLjava/lang/String;Ljava/lang/String;)V
putfield javassist.CtNewClass.classfile:Ljavassist/bytecode/ClassFile;
7: iload 3
ifeq 9
aload 4
ifnull 9
8: aload 0
getfield javassist.CtNewClass.classfile:Ljavassist/bytecode/ClassFile;
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 4
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
aastore
invokevirtual javassist.bytecode.ClassFile.setInterfaces:([Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual javassist.CtNewClass.getModifiers:()I
invokestatic javassist.Modifier.setPublic:(I)I
invokevirtual javassist.CtNewClass.setModifiers:(I)V
10: aload 0
iload 3
putfield javassist.CtNewClass.hasConstructor:Z
11: 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 12 0 this Ljavassist/CtNewClass;
0 12 1 name Ljava/lang/String;
0 12 2 cp Ljavassist/ClassPool;
0 12 3 isInterface Z
0 12 4 superclass Ljavassist/CtClass;
4 5 5 superName Ljava/lang/String;
6 12 5 superName Ljava/lang/String;
MethodParameters:
Name Flags
name
cp
isInterface
superclass
protected void extendToString(java.lang.StringBuffer);
descriptor: (Ljava/lang/StringBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield javassist.CtNewClass.hasConstructor:Z
ifeq 2
1: aload 1
ldc "hasConstructor "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial javassist.CtClassType.extendToString:(Ljava/lang/StringBuffer;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljavassist/CtNewClass;
0 4 1 buffer Ljava/lang/StringBuffer;
MethodParameters:
Name Flags
buffer
public void addConstructor(javassist.CtConstructor);
descriptor: (Ljavassist/CtConstructor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield javassist.CtNewClass.hasConstructor:Z
1: aload 0
aload 1
invokespecial javassist.CtClassType.addConstructor:(Ljavassist/CtConstructor;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljavassist/CtNewClass;
0 3 1 c Ljavassist/CtConstructor;
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
c
public void toBytecode(java.io.DataOutputStream);
descriptor: (Ljava/io/DataOutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield javassist.CtNewClass.hasConstructor:Z
ifne 6
1: aload 0
invokevirtual javassist.CtNewClass.inheritAllConstructors:()V
2: aload 0
iconst_1
putfield javassist.CtNewClass.hasConstructor:Z
3: goto 6
4: StackMap locals:
StackMap stack: javassist.NotFoundException
astore 2
start local 2 5: new javassist.CannotCompileException
dup
aload 2
invokespecial javassist.CannotCompileException.<init>:(Ljavassist/NotFoundException;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial javassist.CtClassType.toBytecode:(Ljava/io/DataOutputStream;)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljavassist/CtNewClass;
0 8 1 out Ljava/io/DataOutputStream;
5 6 2 e Ljavassist/NotFoundException;
Exception table:
from to target type
1 3 4 Class javassist.NotFoundException
Exceptions:
throws javassist.CannotCompileException, java.io.IOException
MethodParameters:
Name Flags
out
public void inheritAllConstructors();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual javassist.CtNewClass.getSuperclass:()Ljavassist/CtClass;
astore 1
start local 1 1: aload 1
invokevirtual javassist.CtClass.getDeclaredConstructors:()[Ljavassist/CtConstructor;
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 16
5: StackMap locals: javassist.CtNewClass javassist.CtClass javassist.CtConstructor[] int int
StackMap stack:
aload 2
iload 4
aaload
astore 5
start local 5 6: aload 5
invokevirtual javassist.CtConstructor.getModifiers:()I
istore 6
start local 6 7: aload 0
iload 6
aload 1
invokevirtual javassist.CtNewClass.isInheritable:(ILjavassist/CtClass;)Z
ifeq 15
8: aload 5
invokevirtual javassist.CtConstructor.getParameterTypes:()[Ljavassist/CtClass;
9: aload 5
invokevirtual javassist.CtConstructor.getExceptionTypes:()[Ljavassist/CtClass;
aload 0
10: invokestatic javassist.CtNewConstructor.make:([Ljavassist/CtClass;[Ljavassist/CtClass;Ljavassist/CtClass;)Ljavassist/CtConstructor;
11: astore 7
start local 7 12: aload 7
iload 6
bipush 7
iand
invokevirtual javassist.CtConstructor.setModifiers:(I)V
13: aload 0
aload 7
invokevirtual javassist.CtNewClass.addConstructor:(Ljavassist/CtConstructor;)V
14: iinc 3 1
end local 7 end local 6 end local 5 15: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 2
arraylength
if_icmplt 5
end local 4 17: iload 3
iconst_1
if_icmpge 21
18: new javassist.CannotCompileException
dup
19: new java.lang.StringBuilder
dup
ldc "no inheritable constructor in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljavassist/CtNewClass;
1 22 1 superclazz Ljavassist/CtClass;
2 22 2 cs [Ljavassist/CtConstructor;
3 22 3 n I
4 17 4 i I
6 15 5 c Ljavassist/CtConstructor;
7 15 6 mod I
12 15 7 cons Ljavassist/CtConstructor;
Exceptions:
throws javassist.CannotCompileException, javassist.NotFoundException
private boolean isInheritable(int, javassist.CtClass);
descriptor: (ILjavassist/CtClass;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic javassist.Modifier.isPrivate:(I)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 1
invokestatic javassist.Modifier.isPackage:(I)Z
ifeq 9
3: aload 0
invokevirtual javassist.CtNewClass.getPackageName:()Ljava/lang/String;
astore 3
start local 3 4: aload 2
invokevirtual javassist.CtClass.getPackageName:()Ljava/lang/String;
astore 4
start local 4 5: aload 3
ifnonnull 8
6: aload 4
ifnonnull 7
iconst_1
ireturn
StackMap locals: java.lang.String java.lang.String
StackMap stack:
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 4 end local 3 9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljavassist/CtNewClass;
0 10 1 mod I
0 10 2 superclazz Ljavassist/CtClass;
4 9 3 pname Ljava/lang/String;
5 9 4 pname2 Ljava/lang/String;
MethodParameters:
Name Flags
mod
superclazz
}
SourceFile: "CtNewClass.java"