Class InnerClassesAttribute


  • public class InnerClassesAttribute
    extends AttributeInfo
    InnerClasses_attribute.
    • Field Detail

      • tag

        public static final java.lang.String tag
        The name of this attribute "InnerClasses".
        See Also:
        Constant Field Values
    • Constructor Detail

      • InnerClassesAttribute

        InnerClassesAttribute​(ConstPool cp,
                              int n,
                              java.io.DataInputStream in)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • InnerClassesAttribute

        private InnerClassesAttribute​(ConstPool cp,
                                      byte[] info)
    • Method Detail

      • tableLength

        public int tableLength()
        Returns number_of_classes.
      • innerClassIndex

        public int innerClassIndex​(int nth)
        Returns classes[nth].inner_class_info_index.
      • innerClass

        public java.lang.String innerClass​(int nth)
        Returns the class name indicated by classes[nth].inner_class_info_index.
        Returns:
        null or the class name.
      • setInnerClassIndex

        public void setInnerClassIndex​(int nth,
                                       int index)
        Sets classes[nth].inner_class_info_index to the given index.
      • outerClassIndex

        public int outerClassIndex​(int nth)
        Returns classes[nth].outer_class_info_index.
      • outerClass

        public java.lang.String outerClass​(int nth)
        Returns the class name indicated by classes[nth].outer_class_info_index.
        Returns:
        null or the class name.
      • setOuterClassIndex

        public void setOuterClassIndex​(int nth,
                                       int index)
        Sets classes[nth].outer_class_info_index to the given index.
      • innerNameIndex

        public int innerNameIndex​(int nth)
        Returns classes[nth].inner_name_index.
      • innerName

        public java.lang.String innerName​(int nth)
        Returns the simple class name indicated by classes[nth].inner_name_index.
        Returns:
        null or the class name.
      • setInnerNameIndex

        public void setInnerNameIndex​(int nth,
                                      int index)
        Sets classes[nth].inner_name_index to the given index.
      • accessFlags

        public int accessFlags​(int nth)
        Returns classes[nth].inner_class_access_flags.
      • setAccessFlags

        public void setAccessFlags​(int nth,
                                   int flags)
        Sets classes[nth].inner_class_access_flags to the given index.
      • append

        public void append​(java.lang.String inner,
                           java.lang.String outer,
                           java.lang.String name,
                           int flags)
        Appends a new entry.
        Parameters:
        inner - inner_class_info_index
        outer - outer_class_info_index
        name - inner_name_index
        flags - inner_class_access_flags
      • append

        public void append​(int inner,
                           int outer,
                           int name,
                           int flags)
        Appends a new entry.
        Parameters:
        inner - inner_class_info_index
        outer - outer_class_info_index
        name - inner_name_index
        flags - inner_class_access_flags
      • remove

        public int remove​(int nth)
        Removes the nth entry. It does not eliminate constant pool items that the removed entry refers to. ClassFile.compact() should be executed to remove these unnecessary items.
        Parameters:
        nth - 0, 1, 2, ...
        Returns:
        the number of items after the removal.
        See Also:
        ClassFile.compact()
      • copy

        public AttributeInfo copy​(ConstPool newCp,
                                  java.util.Map classnames)
        Makes a copy. Class names are replaced according to the given Map object.
        Overrides:
        copy in class AttributeInfo
        Parameters:
        newCp - the constant pool table used by the new copy.
        classnames - pairs of replaced and substituted class names.