public class com.sun.tools.javap.TypeAnnotationWriter extends com.sun.tools.javap.InstructionDetailWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javap.TypeAnnotationWriter
super_class: com.sun.tools.javap.InstructionDetailWriter
{
private com.sun.tools.javap.AnnotationWriter annotationWriter;
descriptor: Lcom/sun/tools/javap/AnnotationWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.ClassWriter classWriter;
descriptor: Lcom/sun/tools/javap/ClassWriter;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.Integer, java.util.List<com.sun.tools.javap.TypeAnnotationWriter$Note>> pcMap;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/List<Lcom/sun/tools/javap/TypeAnnotationWriter$Note;>;>;
static com.sun.tools.javap.TypeAnnotationWriter instance(com.sun.tools.javap.Context);
descriptor: (Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/TypeAnnotationWriter;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc Lcom/sun/tools/javap/TypeAnnotationWriter;
invokevirtual com.sun.tools.javap.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.sun.tools.javap.TypeAnnotationWriter
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new com.sun.tools.javap.TypeAnnotationWriter
dup
aload 0
invokespecial com.sun.tools.javap.TypeAnnotationWriter.<init>:(Lcom/sun/tools/javap/Context;)V
astore 1
3: StackMap locals: com.sun.tools.javap.TypeAnnotationWriter
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lcom/sun/tools/javap/Context;
1 4 1 instance Lcom/sun/tools/javap/TypeAnnotationWriter;
MethodParameters:
Name Flags
context
protected void <init>(com.sun.tools.javap.Context);
descriptor: (Lcom/sun/tools/javap/Context;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.tools.javap.InstructionDetailWriter.<init>:(Lcom/sun/tools/javap/Context;)V
1: aload 1
ldc Lcom/sun/tools/javap/TypeAnnotationWriter;
aload 0
invokevirtual com.sun.tools.javap.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
aload 1
invokestatic com.sun.tools.javap.AnnotationWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/AnnotationWriter;
putfield com.sun.tools.javap.TypeAnnotationWriter.annotationWriter:Lcom/sun/tools/javap/AnnotationWriter;
3: aload 0
aload 1
invokestatic com.sun.tools.javap.ClassWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/ClassWriter;
putfield com.sun.tools.javap.TypeAnnotationWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javap/TypeAnnotationWriter;
0 5 1 context Lcom/sun/tools/javap/Context;
MethodParameters:
Name Flags
context
public void reset(com.sun.tools.classfile.Code_attribute);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javap.TypeAnnotationWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getMethod:()Lcom/sun/tools/classfile/Method;
astore 2
start local 2 1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.tools.javap.TypeAnnotationWriter.pcMap:Ljava/util/Map;
2: aload 0
getstatic com.sun.tools.javap.TypeAnnotationWriter$NoteKind.VISIBLE:Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;
aload 2
getfield com.sun.tools.classfile.Method.attributes:Lcom/sun/tools/classfile/Attributes;
ldc "RuntimeVisibleTypeAnnotations"
invokevirtual com.sun.tools.classfile.Attributes.get:(Ljava/lang/String;)Lcom/sun/tools/classfile/Attribute;
checkcast com.sun.tools.classfile.RuntimeVisibleTypeAnnotations_attribute
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.check:(Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;Lcom/sun/tools/classfile/RuntimeTypeAnnotations_attribute;)V
3: aload 0
getstatic com.sun.tools.javap.TypeAnnotationWriter$NoteKind.INVISIBLE:Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;
aload 2
getfield com.sun.tools.classfile.Method.attributes:Lcom/sun/tools/classfile/Attributes;
ldc "RuntimeInvisibleTypeAnnotations"
invokevirtual com.sun.tools.classfile.Attributes.get:(Ljava/lang/String;)Lcom/sun/tools/classfile/Attribute;
checkcast com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.check:(Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;Lcom/sun/tools/classfile/RuntimeTypeAnnotations_attribute;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javap/TypeAnnotationWriter;
0 5 1 attr Lcom/sun/tools/classfile/Code_attribute;
1 5 2 m Lcom/sun/tools/classfile/Method;
MethodParameters:
Name Flags
attr
private void check(com.sun.tools.javap.TypeAnnotationWriter$NoteKind, com.sun.tools.classfile.RuntimeTypeAnnotations_attribute);
descriptor: (Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;Lcom/sun/tools/classfile/RuntimeTypeAnnotations_attribute;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
getfield com.sun.tools.classfile.RuntimeTypeAnnotations_attribute.annotations:[Lcom/sun/tools/classfile/TypeAnnotation;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 17
StackMap locals: com.sun.tools.javap.TypeAnnotationWriter com.sun.tools.javap.TypeAnnotationWriter$NoteKind com.sun.tools.classfile.RuntimeTypeAnnotations_attribute top int int com.sun.tools.classfile.TypeAnnotation[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
getfield com.sun.tools.classfile.TypeAnnotation.position:Lcom/sun/tools/classfile/TypeAnnotation$Position;
astore 7
start local 7 5: aconst_null
astore 8
start local 8 6: aload 7
getfield com.sun.tools.classfile.TypeAnnotation$Position.offset:I
iconst_m1
if_icmpeq 8
7: aload 0
aload 7
getfield com.sun.tools.classfile.TypeAnnotation$Position.offset:I
new com.sun.tools.javap.TypeAnnotationWriter$Note
dup
aload 1
aload 3
invokespecial com.sun.tools.javap.TypeAnnotationWriter$Note.<init>:(Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;Lcom/sun/tools/classfile/TypeAnnotation;)V
dup
astore 8
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.addNote:(ILcom/sun/tools/javap/TypeAnnotationWriter$Note;)V
8: StackMap locals: com.sun.tools.javap.TypeAnnotationWriter com.sun.tools.javap.TypeAnnotationWriter$NoteKind com.sun.tools.classfile.RuntimeTypeAnnotations_attribute com.sun.tools.classfile.TypeAnnotation int int com.sun.tools.classfile.TypeAnnotation[] com.sun.tools.classfile.TypeAnnotation$Position com.sun.tools.javap.TypeAnnotationWriter$Note
StackMap stack:
aload 7
getfield com.sun.tools.classfile.TypeAnnotation$Position.lvarOffset:[I
ifnull 16
9: iconst_0
istore 9
start local 9 10: goto 15
11: StackMap locals: int
StackMap stack:
aload 8
ifnonnull 13
12: new com.sun.tools.javap.TypeAnnotationWriter$Note
dup
aload 1
aload 3
invokespecial com.sun.tools.javap.TypeAnnotationWriter$Note.<init>:(Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;Lcom/sun/tools/classfile/TypeAnnotation;)V
astore 8
13: StackMap locals:
StackMap stack:
aload 0
aload 7
getfield com.sun.tools.classfile.TypeAnnotation$Position.lvarOffset:[I
iload 9
iaload
aload 8
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.addNote:(ILcom/sun/tools/javap/TypeAnnotationWriter$Note;)V
14: iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
aload 7
getfield com.sun.tools.classfile.TypeAnnotation$Position.lvarOffset:[I
arraylength
if_icmplt 11
end local 9 end local 8 end local 7 end local 3 16: StackMap locals: com.sun.tools.javap.TypeAnnotationWriter com.sun.tools.javap.TypeAnnotationWriter$NoteKind com.sun.tools.classfile.RuntimeTypeAnnotations_attribute top int int com.sun.tools.classfile.TypeAnnotation[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 5
if_icmplt 3
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/tools/javap/TypeAnnotationWriter;
0 19 1 kind Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;
0 19 2 attr Lcom/sun/tools/classfile/RuntimeTypeAnnotations_attribute;
4 16 3 anno Lcom/sun/tools/classfile/TypeAnnotation;
5 16 7 p Lcom/sun/tools/classfile/TypeAnnotation$Position;
6 16 8 note Lcom/sun/tools/javap/TypeAnnotationWriter$Note;
10 16 9 i I
MethodParameters:
Name Flags
kind
attr
private void addNote(int, com.sun.tools.javap.TypeAnnotationWriter$Note);
descriptor: (ILcom/sun/tools/javap/TypeAnnotationWriter$Note;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javap.TypeAnnotationWriter.pcMap:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 0
getfield com.sun.tools.javap.TypeAnnotationWriter.pcMap:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
dup
astore 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.List
StackMap stack:
aload 3
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javap/TypeAnnotationWriter;
0 5 1 pc I
0 5 2 note Lcom/sun/tools/javap/TypeAnnotationWriter$Note;
1 5 3 list Ljava/util/List<Lcom/sun/tools/javap/TypeAnnotationWriter$Note;>;
MethodParameters:
Name Flags
pc
note
void writeDetails(com.sun.tools.classfile.Instruction);
descriptor: (Lcom/sun/tools/classfile/Instruction;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
iconst_2
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.space:(I)Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
istore 3
start local 3 2: aload 0
getfield com.sun.tools.javap.TypeAnnotationWriter.pcMap:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 3: aload 4
ifnull 12
4: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: com.sun.tools.javap.TypeAnnotationWriter com.sun.tools.classfile.Instruction java.lang.String int java.util.List top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javap.TypeAnnotationWriter$Note
astore 5
start local 5 6: aload 0
aload 2
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.print:(Ljava/lang/String;)V
7: aload 0
ldc "@"
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.print:(Ljava/lang/String;)V
8: aload 0
getfield com.sun.tools.javap.TypeAnnotationWriter.annotationWriter:Lcom/sun/tools/javap/AnnotationWriter;
aload 5
getfield com.sun.tools.javap.TypeAnnotationWriter$Note.anno:Lcom/sun/tools/classfile/TypeAnnotation;
iconst_0
iconst_1
invokevirtual com.sun.tools.javap.AnnotationWriter.write:(Lcom/sun/tools/classfile/TypeAnnotation;ZZ)V
9: aload 0
ldc ", "
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.print:(Ljava/lang/String;)V
10: aload 0
aload 5
getfield com.sun.tools.javap.TypeAnnotationWriter$Note.kind:Lcom/sun/tools/javap/TypeAnnotationWriter$NoteKind;
invokevirtual com.sun.tools.javap.TypeAnnotationWriter$NoteKind.toString:()Ljava/lang/String;
invokestatic com.sun.tools.javac.util.StringUtils.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.println:(Ljava/lang/String;)V
end local 5 11: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
12: StackMap locals: com.sun.tools.javap.TypeAnnotationWriter com.sun.tools.classfile.Instruction java.lang.String int java.util.List
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/javap/TypeAnnotationWriter;
0 13 1 instr Lcom/sun/tools/classfile/Instruction;
1 13 2 indent Ljava/lang/String;
2 13 3 pc I
3 13 4 notes Ljava/util/List<Lcom/sun/tools/javap/TypeAnnotationWriter$Note;>;
6 11 5 n Lcom/sun/tools/javap/TypeAnnotationWriter$Note;
MethodParameters:
Name Flags
instr
}
SourceFile: "TypeAnnotationWriter.java"
NestMembers:
com.sun.tools.javap.TypeAnnotationWriter$Note com.sun.tools.javap.TypeAnnotationWriter$NoteKind
InnerClasses:
public Position = com.sun.tools.classfile.TypeAnnotation$Position of com.sun.tools.classfile.TypeAnnotation
public Note = com.sun.tools.javap.TypeAnnotationWriter$Note of com.sun.tools.javap.TypeAnnotationWriter
public final NoteKind = com.sun.tools.javap.TypeAnnotationWriter$NoteKind of com.sun.tools.javap.TypeAnnotationWriter