Class PermittedSubclasses

  • All Implemented Interfaces:
    java.lang.Cloneable, Node

    public final class PermittedSubclasses
    extends Attribute
    This class is derived from Attribute and records the classes and interfaces that are permitted to extend or implement the current class or interface. There may be at most one PermittedSubclasses attribute in a ClassFile structure.
    Since:
    6.13.0
    See Also:
    Attribute
    • Constructor Detail

      • PermittedSubclasses

        public PermittedSubclasses​(int nameIndex,
                                   int length,
                                   int[] classes,
                                   ConstantPool constantPool)
        Constructs object from table of class indices in constant pool.
        Parameters:
        nameIndex - Index in constant pool.
        length - Content length in bytes.
        classes - Table of indices in constant pool.
        constantPool - Array of constants.
      • PermittedSubclasses

        public PermittedSubclasses​(PermittedSubclasses c)
        Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.
        Parameters:
        c - Source to copy.
    • Method Detail

      • accept

        public void accept​(Visitor v)
        Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
        Specified by:
        accept in interface Node
        Specified by:
        accept in class Attribute
        Parameters:
        v - Visitor object.
      • copy

        public Attribute copy​(ConstantPool constantPool)
        Creates a deep clone of this object given constant pool.
        Specified by:
        copy in class Attribute
        Parameters:
        constantPool - constant pool to save.
        Returns:
        deep copy of this attribute.
      • dump

        public void dump​(java.io.DataOutputStream file)
                  throws java.io.IOException
        Dumps PermittedSubclasses attribute to file stream in binary format.
        Overrides:
        dump in class Attribute
        Parameters:
        file - Output file stream.
        Throws:
        java.io.IOException - Thrown if an I/O error occurs.
      • getClasses

        public int[] getClasses()
        Gets the class indices in constant pool.
        Returns:
        array of indices into constant pool of class names.
      • getClassNames

        public java.lang.String[] getClassNames()
        Gets permitted class names.
        Returns:
        string array of class names.
      • getNumberClasses

        public int getNumberClasses()
        Gets the number of classes.
        Returns:
        Length of classes table.
      • setClasses

        public void setClasses​(int[] classes)
        Sets class indices.
        Parameters:
        classes - The list of class indexes Also redefines number_of_classes according to table length.
      • toString

        public java.lang.String toString()
        String representation of PermittedSubclasses (for debugging purposes).
        Overrides:
        toString in class Attribute
        Returns:
        String representation, that is, a list of permitted subclasses.