src/share/classes/com/sun/tools/javap/AttributeWriter.java

changeset 1473
31780dd06ec7
parent 826
5cf6c432ef2f
child 1521
71f35e4b93a5
equal deleted inserted replaced
1472:0c244701188e 1473:31780dd06ec7
1 /* 1 /*
2 * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this 7 * published by the Free Software Foundation. Oracle designates this
44 import com.sun.tools.classfile.Exceptions_attribute; 44 import com.sun.tools.classfile.Exceptions_attribute;
45 import com.sun.tools.classfile.InnerClasses_attribute; 45 import com.sun.tools.classfile.InnerClasses_attribute;
46 import com.sun.tools.classfile.LineNumberTable_attribute; 46 import com.sun.tools.classfile.LineNumberTable_attribute;
47 import com.sun.tools.classfile.LocalVariableTable_attribute; 47 import com.sun.tools.classfile.LocalVariableTable_attribute;
48 import com.sun.tools.classfile.LocalVariableTypeTable_attribute; 48 import com.sun.tools.classfile.LocalVariableTypeTable_attribute;
49 import com.sun.tools.classfile.MethodParameters_attribute;
49 import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute; 50 import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute;
50 import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute; 51 import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute;
51 import com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute; 52 import com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute;
52 import com.sun.tools.classfile.RuntimeVisibleParameterAnnotations_attribute; 53 import com.sun.tools.classfile.RuntimeVisibleParameterAnnotations_attribute;
53 import com.sun.tools.classfile.Signature_attribute; 54 import com.sun.tools.classfile.Signature_attribute;
384 } 385 }
385 indent(-1); 386 indent(-1);
386 return null; 387 return null;
387 } 388 }
388 389
390 private static final String format = "%-31s%s";
391
392 public Void visitMethodParameters(MethodParameters_attribute attr,
393 Void ignore) {
394
395 final String header = String.format(format, "Name", "Flags");
396 println("MethodParameters:");
397 indent(+1);
398 println(header);
399 for (MethodParameters_attribute.Entry entry :
400 attr.method_parameter_table) {
401 String flagstr =
402 (0 != (entry.flags & ACC_FINAL) ? " final" : "") +
403 (0 != (entry.flags & ACC_SYNTHETIC) ? " synthetic" : "");
404 println(String.format(format,
405 constantWriter.stringValue(entry.name_index),
406 flagstr));
407 }
408 indent(-1);
409 return null;
410 }
411
389 public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, Void ignore) { 412 public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, Void ignore) {
390 println("RuntimeVisibleAnnotations:"); 413 println("RuntimeVisibleAnnotations:");
391 indent(+1); 414 indent(+1);
392 for (int i = 0; i < attr.annotations.length; i++) { 415 for (int i = 0; i < attr.annotations.length; i++) {
393 print(i + ": "); 416 print(i + ": ");

mercurial