src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java
changeset 50735 2f2af62dfac7
parent 47216 71c04702a3d5
child 59232 d4ddf19c2624
equal deleted inserted replaced
50734:0828a0f6676b 50735:2f2af62dfac7
     1 /*
     1 /*
     2  * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2007, 2018, 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
    33 import com.sun.tools.classfile.CharacterRangeTable_attribute;
    33 import com.sun.tools.classfile.CharacterRangeTable_attribute;
    34 import com.sun.tools.classfile.CharacterRangeTable_attribute.Entry;
    34 import com.sun.tools.classfile.CharacterRangeTable_attribute.Entry;
    35 import com.sun.tools.classfile.Code_attribute;
    35 import com.sun.tools.classfile.Code_attribute;
    36 import com.sun.tools.classfile.CompilationID_attribute;
    36 import com.sun.tools.classfile.CompilationID_attribute;
    37 import com.sun.tools.classfile.ConstantPool;
    37 import com.sun.tools.classfile.ConstantPool;
       
    38 import com.sun.tools.classfile.ConstantPool.CONSTANT_Class_info;
    38 import com.sun.tools.classfile.ConstantPoolException;
    39 import com.sun.tools.classfile.ConstantPoolException;
    39 import com.sun.tools.classfile.ConstantValue_attribute;
    40 import com.sun.tools.classfile.ConstantValue_attribute;
    40 import com.sun.tools.classfile.DefaultAttribute;
    41 import com.sun.tools.classfile.DefaultAttribute;
    41 import com.sun.tools.classfile.Deprecated_attribute;
    42 import com.sun.tools.classfile.Deprecated_attribute;
    42 import com.sun.tools.classfile.EnclosingMethod_attribute;
    43 import com.sun.tools.classfile.EnclosingMethod_attribute;
    51 import com.sun.tools.classfile.ModuleHashes_attribute;
    52 import com.sun.tools.classfile.ModuleHashes_attribute;
    52 import com.sun.tools.classfile.ModuleMainClass_attribute;
    53 import com.sun.tools.classfile.ModuleMainClass_attribute;
    53 import com.sun.tools.classfile.ModulePackages_attribute;
    54 import com.sun.tools.classfile.ModulePackages_attribute;
    54 import com.sun.tools.classfile.ModuleResolution_attribute;
    55 import com.sun.tools.classfile.ModuleResolution_attribute;
    55 import com.sun.tools.classfile.ModuleTarget_attribute;
    56 import com.sun.tools.classfile.ModuleTarget_attribute;
       
    57 import com.sun.tools.classfile.NestHost_attribute;
       
    58 import com.sun.tools.classfile.NestMembers_attribute;
    56 import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute;
    59 import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute;
    57 import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute;
    60 import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute;
    58 import com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute;
    61 import com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute;
    59 import com.sun.tools.classfile.RuntimeParameterAnnotations_attribute;
    62 import com.sun.tools.classfile.RuntimeParameterAnnotations_attribute;
    60 import com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute;
    63 import com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute;
   395         }
   398         }
   396         indent(-1);
   399         indent(-1);
   397         return null;
   400         return null;
   398     }
   401     }
   399 
   402 
       
   403     @Override
       
   404     public Void visitNestHost(NestHost_attribute attr, Void aVoid) {
       
   405         print("NestHost: ");
       
   406         constantWriter.write(attr.top_index);
       
   407         println();
       
   408         return null;
       
   409     }
       
   410 
   400     private String getJavaClassName(ModuleMainClass_attribute a) {
   411     private String getJavaClassName(ModuleMainClass_attribute a) {
   401         try {
   412         try {
   402             return getJavaName(a.getMainClassName(constant_pool));
   413             return getJavaName(a.getMainClassName(constant_pool));
   403         } catch (ConstantPoolException e) {
   414         } catch (ConstantPoolException e) {
   404             return report(e);
   415             return report(e);
   682         try {
   693         try {
   683             return constant_pool.getUTF8Value(attr.target_platform_index);
   694             return constant_pool.getUTF8Value(attr.target_platform_index);
   684         } catch (ConstantPoolException e) {
   695         } catch (ConstantPoolException e) {
   685             return report(e);
   696             return report(e);
   686         }
   697         }
       
   698     }
       
   699 
       
   700     @Override
       
   701     public Void visitNestMembers(NestMembers_attribute attr, Void aVoid) {
       
   702         println("NestMembers:");
       
   703         indent(+1);
       
   704         try {
       
   705             CONSTANT_Class_info[] children = attr.getChildren(constant_pool);
       
   706             for (int i = 0; i < attr.members_indexes.length; i++) {
       
   707                 println(constantWriter.stringValue(children[i]));
       
   708             }
       
   709             indent(-1);
       
   710         } catch (ConstantPoolException ex) {
       
   711             throw new AssertionError(ex);
       
   712         }
       
   713         return null;
   687     }
   714     }
   688 
   715 
   689     @Override
   716     @Override
   690     public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, Void ignore) {
   717     public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, Void ignore) {
   691         println("RuntimeVisibleAnnotations:");
   718         println("RuntimeVisibleAnnotations:");