Class PermittedSubclasses

java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.PermittedSubclasses
All Implemented Interfaces:
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:
  • Constructor Details

    • 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

      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 Details

    • 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(DataOutputStream file) throws IOException
      Dumps PermittedSubclasses attribute to file stream in binary format.
      Overrides:
      dump in class Attribute
      Parameters:
      file - Output file stream.
      Throws:
      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 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 String toString()
      String representation of PermittedSubclasses (for debugging purposes).
      Overrides:
      toString in class Attribute
      Returns:
      String representation, that is, a list of permitted subclasses.