< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java

Print this page




  55         super(name_index, 2 + Info.length() * classes.length);
  56         this.number_of_classes = classes.length;
  57         this.classes = classes;
  58     }
  59 
  60     public <R, D> R accept(Visitor<R, D> visitor, D data) {
  61         return visitor.visitInnerClasses(this, data);
  62     }
  63 
  64     public final int number_of_classes;
  65     public final Info[] classes;
  66 
  67     public static class Info {
  68         Info(ClassReader cr) throws IOException {
  69             inner_class_info_index = cr.readUnsignedShort();
  70             outer_class_info_index = cr.readUnsignedShort();
  71             inner_name_index = cr.readUnsignedShort();
  72             inner_class_access_flags = new AccessFlags(cr.readUnsignedShort());
  73         }
  74 







  75         public CONSTANT_Class_info getInnerClassInfo(ConstantPool constant_pool) throws ConstantPoolException {
  76             if (inner_class_info_index == 0)
  77                 return null;
  78             return constant_pool.getClassInfo(inner_class_info_index);
  79         }
  80 
  81         public CONSTANT_Class_info getOuterClassInfo(ConstantPool constant_pool) throws ConstantPoolException {
  82             if (outer_class_info_index == 0)
  83                 return null;
  84             return constant_pool.getClassInfo(outer_class_info_index);
  85         }
  86 
  87         public String getInnerName(ConstantPool constant_pool) throws ConstantPoolException {
  88             if (inner_name_index == 0)
  89                 return null;
  90             return constant_pool.getUTF8Value(inner_name_index);
  91         }
  92 
  93         public static int length() {
  94             return 8;


  55         super(name_index, 2 + Info.length() * classes.length);
  56         this.number_of_classes = classes.length;
  57         this.classes = classes;
  58     }
  59 
  60     public <R, D> R accept(Visitor<R, D> visitor, D data) {
  61         return visitor.visitInnerClasses(this, data);
  62     }
  63 
  64     public final int number_of_classes;
  65     public final Info[] classes;
  66 
  67     public static class Info {
  68         Info(ClassReader cr) throws IOException {
  69             inner_class_info_index = cr.readUnsignedShort();
  70             outer_class_info_index = cr.readUnsignedShort();
  71             inner_name_index = cr.readUnsignedShort();
  72             inner_class_access_flags = new AccessFlags(cr.readUnsignedShort());
  73         }
  74 
  75         public Info(int inner_class_info_index, int outer_class_info_index, int inner_name_index, AccessFlags inner_class_access_flags) {
  76             this.inner_class_info_index = inner_class_info_index;
  77             this.outer_class_info_index = outer_class_info_index;
  78             this.inner_name_index = inner_name_index;
  79             this.inner_class_access_flags = inner_class_access_flags;
  80         }
  81 
  82         public CONSTANT_Class_info getInnerClassInfo(ConstantPool constant_pool) throws ConstantPoolException {
  83             if (inner_class_info_index == 0)
  84                 return null;
  85             return constant_pool.getClassInfo(inner_class_info_index);
  86         }
  87 
  88         public CONSTANT_Class_info getOuterClassInfo(ConstantPool constant_pool) throws ConstantPoolException {
  89             if (outer_class_info_index == 0)
  90                 return null;
  91             return constant_pool.getClassInfo(outer_class_info_index);
  92         }
  93 
  94         public String getInnerName(ConstantPool constant_pool) throws ConstantPoolException {
  95             if (inner_name_index == 0)
  96                 return null;
  97             return constant_pool.getUTF8Value(inner_name_index);
  98         }
  99 
 100         public static int length() {
 101             return 8;
< prev index next >