Class ConstPool

java.lang.Object
javassist.bytecode.ConstPool

public final class ConstPool extends Object
Constant pool table.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    CONSTANT_Class
    static final int
    CONSTANT_Double
    static final int
    CONSTANT_Dynamic
    static final int
    CONSTANT_DynamicCallSite, also known as CONSTANT_InvokeDynamic
    static final int
    CONSTANT_Fieldref
    static final int
    CONSTANT_Float
    static final int
    CONSTANT_Integer
    static final int
    CONSTANT_InterfaceMethodref
    static final int
     
    static final int
    CONSTANT_Long
    static final int
    CONSTANT_MethodHandle
    static final int
    CONSTANT_Methodref
    static final int
    CONSTANT_MethodHandle
    static final int
    CONSTANT_Module
    static final int
    CONSTANT_NameAndType
    static final int
    CONSTANT_Package
    static final int
    CONSTANT_String
    static final int
    CONSTANT_Utf8
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final int
    reference_kind of CONSTANT_MethodHandle_info.
    static final CtClass
    Represents the class using this constant pool table.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a constant pool table from the given byte stream.
    ConstPool(String thisclass)
    Constructs a constant pool table.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Adds a new CONSTANT_Class_info structure.
    int
    Adds a new CONSTANT_Class_info structure.
    int
    addDoubleInfo(double d)
    Adds a new CONSTANT_Double_info structure.
    int
    addDynamicInfo(int bootstrap, int nameAndType)
    Adds a new CONSTANT_Dynamic_info structure.
    int
    addFieldrefInfo(int classInfo, int nameAndTypeInfo)
    Adds a new CONSTANT_Fieldref_info structure.
    int
    addFieldrefInfo(int classInfo, String name, String type)
    Adds a new CONSTANT_Fieldref_info structure.
    int
    addFloatInfo(float f)
    Adds a new CONSTANT_Float_info structure.
    int
    Adds a new CONSTANT_Integer_info structure.
    int
    addInterfaceMethodrefInfo(int classInfo, int nameAndTypeInfo)
    Adds a new CONSTANT_InterfaceMethodref_info structure.
    int
    addInterfaceMethodrefInfo(int classInfo, String name, String type)
    Adds a new CONSTANT_InterfaceMethodref_info structure.
    int
    addInvokeDynamicInfo(int bootstrap, int nameAndType)
    Adds a new CONSTANT_InvokeDynamic_info structure.
    int
    addLongInfo(long l)
    Adds a new CONSTANT_Long_info structure.
    int
    addMethodHandleInfo(int kind, int index)
    Adds a new CONSTANT_MethodHandle_info structure.
    int
    addMethodrefInfo(int classInfo, int nameAndTypeInfo)
    Adds a new CONSTANT_Methodref_info structure.
    int
    addMethodrefInfo(int classInfo, String name, String type)
    Adds a new CONSTANT_Methodref_info structure.
    int
    Adds a new CONSTANT_MethodType_info structure.
    int
    addModuleInfo(int nameIndex)
    Adds a new CONSTANT_Module_info
    int
    addNameAndTypeInfo(int name, int type)
    Adds a new CONSTANT_NameAndType_info structure.
    int
    Adds a new CONSTANT_NameAndType_info structure.
    int
    addPackageInfo(int nameIndex)
    Adds a new CONSTANT_Package_info
    int
    Adds a new CONSTANT_String_info structure.
    int
    Adds a new CONSTANT_Utf8_info structure.
    int
    copy(int n, ConstPool dest, Map<String,String> classnames)
    Copies the n-th item in this ConstPool object into the destination ConstPool object.
    eqMember(String membername, String desc, int index)
    Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure at the given index has the name and the descriptor given as the arguments.
    getClassInfo(int index)
    Reads CONSTANT_Class_info structure at the given index.
    Reads CONSTANT_Class_info structure at the given index.
    Returns the name of the class using this constant pool table.
    Get all the class names.
    double
    getDoubleInfo(int index)
    Reads CONSTANT_Double_info structure at the given index.
    int
    Reads the bootstrap_method_attr_index field of the CONSTANT_Dynamic_info structure at the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_Dynamic_info structure at the given index.
    getDynamicType(int index)
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    getFieldrefClass(int index)
    Reads the class_index field of the CONSTANT_Fieldref_info structure at the given index.
    Reads the class_index field of the CONSTANT_Fieldref_info structure at the given index.
    getFieldrefName(int index)
    Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_Fieldref_info structure at the given index.
    getFieldrefType(int index)
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    float
    getFloatInfo(int index)
    Reads CONSTANT_Float_info structure at the given index.
    int
    getIntegerInfo(int index)
    Reads CONSTANT_Integer_info structure at the given index.
    int
    Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
    Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
    Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    Reads the bootstrap_method_attr_index field of the CONSTANT_InvokeDynamic_info structure at the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_InvokeDynamic_info structure at the given index.
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    getLdcValue(int index)
    Reads CONSTANT_Integer_info, _Float_info, _Long_info, _Double_info, or _String_info structure.
    long
    getLongInfo(int index)
    Reads CONSTANT_Long_info structure at the given index.
    int
    getMemberClass(int index)
    Reads the class_index field of the CONSTANT_Fieldref_info, CONSTANT_Methodref_info, or CONSTANT_Interfaceref_info, structure at the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_Fieldref_info, CONSTANT_Methodref_info, or CONSTANT_Interfaceref_info, structure at the given index.
    int
    Reads the reference_index field of the CONSTANT_MethodHandle_info structure at the given index.
    int
    Reads the reference_kind field of the CONSTANT_MethodHandle_info structure at the given index.
    int
    getMethodrefClass(int index)
    Reads the class_index field of the CONSTANT_Methodref_info structure at the given index.
    Reads the class_index field of the CONSTANT_Methodref_info structure at the given index.
    getMethodrefName(int index)
    Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    Reads the name_and_type_index field of the CONSTANT_Methodref_info structure at the given index.
    getMethodrefType(int index)
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
    int
    getMethodTypeInfo(int index)
    Reads the descriptor_index field of the CONSTANT_MethodType_info structure at the given index.
    getModuleInfo(int index)
    Reads the name_index field of the CONSTANT_Module_info structure at the given index.
    int
    Reads the descriptor_index field of the CONSTANT_NameAndType_info structure at the given index.
    int
    getNameAndTypeName(int index)
    Reads the name_index field of the CONSTANT_NameAndType_info structure at the given index.
    getPackageInfo(int index)
    Reads the name_index field of the CONSTANT_Package_info structure at the given index.
    int
    Returns the number of entries in this table.
    getStringInfo(int index)
    Reads CONSTANT_String_info structure at the given index.
    int
    getTag(int index)
    Returns the tag field of the constant pool table entry at the given index.
    int
    Returns the index of CONSTANT_Class_info structure specifying the class using this constant pool table.
    getUtf8Info(int index)
    Reads CONSTANT_utf8_info structure at the given index.
    int
    isConstructor(String classname, int index)
    Determines whether CONSTANT_Methodref_info structure at the given index represents the constructor of the given class.
    int
    isMember(String classname, String membername, int index)
    Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure at the given index represents the member with the specified name and declaring class.
    void
    Prints the contents of the constant pool table.
    void
    Prints the contents of the constant pool table.
    void
    renameClass(String oldName, String newName)
    Replaces all occurrences of a class name.
    void
    Replaces all occurrences of class names.
    void
    Writes the contents of the constant pool table.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • CONST_Class

      public static final int CONST_Class
      CONSTANT_Class
      See Also:
    • CONST_Fieldref

      public static final int CONST_Fieldref
      CONSTANT_Fieldref
      See Also:
    • CONST_Methodref

      public static final int CONST_Methodref
      CONSTANT_Methodref
      See Also:
    • CONST_InterfaceMethodref

      public static final int CONST_InterfaceMethodref
      CONSTANT_InterfaceMethodref
      See Also:
    • CONST_String

      public static final int CONST_String
      CONSTANT_String
      See Also:
    • CONST_Integer

      public static final int CONST_Integer
      CONSTANT_Integer
      See Also:
    • CONST_Float

      public static final int CONST_Float
      CONSTANT_Float
      See Also:
    • CONST_Long

      public static final int CONST_Long
      CONSTANT_Long
      See Also:
    • CONST_Double

      public static final int CONST_Double
      CONSTANT_Double
      See Also:
    • CONST_NameAndType

      public static final int CONST_NameAndType
      CONSTANT_NameAndType
      See Also:
    • CONST_Utf8

      public static final int CONST_Utf8
      CONSTANT_Utf8
      See Also:
    • CONST_MethodHandle

      public static final int CONST_MethodHandle
      CONSTANT_MethodHandle
      See Also:
    • CONST_MethodType

      public static final int CONST_MethodType
      CONSTANT_MethodHandle
      See Also:
    • CONST_Dynamic

      public static final int CONST_Dynamic
      CONSTANT_Dynamic
      See Also:
    • CONST_DynamicCallSite

      public static final int CONST_DynamicCallSite
      CONSTANT_DynamicCallSite, also known as CONSTANT_InvokeDynamic
      See Also:
    • CONST_InvokeDynamic

      public static final int CONST_InvokeDynamic
      See Also:
    • CONST_Module

      public static final int CONST_Module
      CONSTANT_Module
      See Also:
    • CONST_Package

      public static final int CONST_Package
      CONSTANT_Package
      See Also:
    • THIS

      public static final CtClass THIS
      Represents the class using this constant pool table.
    • REF_getField

      public static final int REF_getField
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_getStatic

      public static final int REF_getStatic
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_putField

      public static final int REF_putField
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_putStatic

      public static final int REF_putStatic
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_invokeVirtual

      public static final int REF_invokeVirtual
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_invokeStatic

      public static final int REF_invokeStatic
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_invokeSpecial

      public static final int REF_invokeSpecial
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_newInvokeSpecial

      public static final int REF_newInvokeSpecial
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
    • REF_invokeInterface

      public static final int REF_invokeInterface
      reference_kind of CONSTANT_MethodHandle_info.
      See Also:
  • Constructor Details

    • ConstPool

      public ConstPool(String thisclass)
      Constructs a constant pool table.
      Parameters:
      thisclass - the name of the class using this constant pool table
    • ConstPool

      public ConstPool(DataInputStream in) throws IOException
      Constructs a constant pool table from the given byte stream.
      Parameters:
      in - byte stream.
      Throws:
      IOException
  • Method Details

    • getSize

      public int getSize()
      Returns the number of entries in this table.
    • getClassName

      public String getClassName()
      Returns the name of the class using this constant pool table.
    • getThisClassInfo

      public int getThisClassInfo()
      Returns the index of CONSTANT_Class_info structure specifying the class using this constant pool table.
    • getTag

      public int getTag(int index)
      Returns the tag field of the constant pool table entry at the given index.
      Returns:
      either CONST_Class, CONST_Fieldref, CONST_Methodref, or ...
    • getClassInfo

      public String getClassInfo(int index)
      Reads CONSTANT_Class_info structure at the given index.
      Returns:
      a fully-qualified class or interface name specified by name_index. If the type is an array type, this method returns an encoded name like [Ljava.lang.Object; (note that the separators are not slashes but dots).
      See Also:
    • getClassInfoByDescriptor

      public String getClassInfoByDescriptor(int index)
      Reads CONSTANT_Class_info structure at the given index.
      Returns:
      the descriptor of the type specified by name_index.
      Since:
      3.15
      See Also:
    • getNameAndTypeName

      public int getNameAndTypeName(int index)
      Reads the name_index field of the CONSTANT_NameAndType_info structure at the given index.
    • getNameAndTypeDescriptor

      public int getNameAndTypeDescriptor(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure at the given index.
    • getMemberClass

      public int getMemberClass(int index)
      Reads the class_index field of the CONSTANT_Fieldref_info, CONSTANT_Methodref_info, or CONSTANT_Interfaceref_info, structure at the given index.
      Since:
      3.6
    • getMemberNameAndType

      public int getMemberNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_Fieldref_info, CONSTANT_Methodref_info, or CONSTANT_Interfaceref_info, structure at the given index.
      Since:
      3.6
    • getFieldrefClass

      public int getFieldrefClass(int index)
      Reads the class_index field of the CONSTANT_Fieldref_info structure at the given index.
    • getFieldrefClassName

      public String getFieldrefClassName(int index)
      Reads the class_index field of the CONSTANT_Fieldref_info structure at the given index.
      Returns:
      the name of the class at that class_index.
    • getFieldrefNameAndType

      public int getFieldrefNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_Fieldref_info structure at the given index.
    • getFieldrefName

      public String getFieldrefName(int index)
      Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_Fieldref_info.
      Returns:
      the name of the field.
    • getFieldrefType

      public String getFieldrefType(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_Fieldref_info.
      Returns:
      the type descriptor of the field.
    • getMethodrefClass

      public int getMethodrefClass(int index)
      Reads the class_index field of the CONSTANT_Methodref_info structure at the given index.
    • getMethodrefClassName

      public String getMethodrefClassName(int index)
      Reads the class_index field of the CONSTANT_Methodref_info structure at the given index.
      Returns:
      the name of the class at that class_index.
    • getMethodrefNameAndType

      public int getMethodrefNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_Methodref_info structure at the given index.
    • getMethodrefName

      public String getMethodrefName(int index)
      Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_Methodref_info.
      Returns:
      the name of the method.
    • getMethodrefType

      public String getMethodrefType(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_Methodref_info.
      Returns:
      the descriptor of the method.
    • getInterfaceMethodrefClass

      public int getInterfaceMethodrefClass(int index)
      Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
    • getInterfaceMethodrefClassName

      public String getInterfaceMethodrefClassName(int index)
      Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
      Returns:
      the name of the class at that class_index.
    • getInterfaceMethodrefNameAndType

      public int getInterfaceMethodrefNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_InterfaceMethodref_info structure at the given index.
    • getInterfaceMethodrefName

      public String getInterfaceMethodrefName(int index)
      Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_InterfaceMethodref_info.
      Returns:
      the name of the method.
    • getInterfaceMethodrefType

      public String getInterfaceMethodrefType(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_InterfaceMethodref_info.
      Returns:
      the descriptor of the method.
    • getLdcValue

      public Object getLdcValue(int index)
      Reads CONSTANT_Integer_info, _Float_info, _Long_info, _Double_info, or _String_info structure. These are used with the LDC instruction.
      Returns:
      a String value or a wrapped primitive-type value.
    • getIntegerInfo

      public int getIntegerInfo(int index)
      Reads CONSTANT_Integer_info structure at the given index.
      Returns:
      the value specified by this entry.
    • getFloatInfo

      public float getFloatInfo(int index)
      Reads CONSTANT_Float_info structure at the given index.
      Returns:
      the value specified by this entry.
    • getLongInfo

      public long getLongInfo(int index)
      Reads CONSTANT_Long_info structure at the given index.
      Returns:
      the value specified by this entry.
    • getDoubleInfo

      public double getDoubleInfo(int index)
      Reads CONSTANT_Double_info structure at the given index.
      Returns:
      the value specified by this entry.
    • getStringInfo

      public String getStringInfo(int index)
      Reads CONSTANT_String_info structure at the given index.
      Returns:
      the string specified by string_index.
    • getUtf8Info

      public String getUtf8Info(int index)
      Reads CONSTANT_utf8_info structure at the given index.
      Returns:
      the string specified by this entry.
    • getMethodHandleKind

      public int getMethodHandleKind(int index)
      Reads the reference_kind field of the CONSTANT_MethodHandle_info structure at the given index.
      Since:
      3.17
      See Also:
    • getMethodHandleIndex

      public int getMethodHandleIndex(int index)
      Reads the reference_index field of the CONSTANT_MethodHandle_info structure at the given index.
      Since:
      3.17
    • getMethodTypeInfo

      public int getMethodTypeInfo(int index)
      Reads the descriptor_index field of the CONSTANT_MethodType_info structure at the given index.
      Since:
      3.17
    • getInvokeDynamicBootstrap

      public int getInvokeDynamicBootstrap(int index)
      Reads the bootstrap_method_attr_index field of the CONSTANT_InvokeDynamic_info structure at the given index.
      Since:
      3.17
    • getInvokeDynamicNameAndType

      public int getInvokeDynamicNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_InvokeDynamic_info structure at the given index.
      Since:
      3.17
    • getInvokeDynamicType

      public String getInvokeDynamicType(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_InvokeDynamic_info.
      Returns:
      the descriptor of the bootstrap method.
      Since:
      3.17
    • getDynamicBootstrap

      public int getDynamicBootstrap(int index)
      Reads the bootstrap_method_attr_index field of the CONSTANT_Dynamic_info structure at the given index.
      Since:
      3.26
    • getDynamicNameAndType

      public int getDynamicNameAndType(int index)
      Reads the name_and_type_index field of the CONSTANT_Dynamic_info structure at the given index.
      Since:
      3.26
    • getDynamicType

      public String getDynamicType(int index)
      Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
      Parameters:
      index - an index to a CONSTANT_Dynamic_info.
      Returns:
      the descriptor of the bootstrap method.
      Since:
      3.26
    • getModuleInfo

      public String getModuleInfo(int index)
      Reads the name_index field of the CONSTANT_Module_info structure at the given index.
      Returns:
      the module name at name_index.
      Since:
      3.22
    • getPackageInfo

      public String getPackageInfo(int index)
      Reads the name_index field of the CONSTANT_Package_info structure at the given index.
      Returns:
      the package name at name_index. It is a slash- separated name such as com/oracle/net.
      Since:
      3.22
    • isConstructor

      public int isConstructor(String classname, int index)
      Determines whether CONSTANT_Methodref_info structure at the given index represents the constructor of the given class.
      Returns:
      the descriptor_index specifying the type descriptor of the that constructor. If it is not that constructor, isConstructor() returns 0.
    • isMember

      public int isMember(String classname, String membername, int index)
      Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure at the given index represents the member with the specified name and declaring class.
      Parameters:
      classname - the class declaring the member
      membername - the member name
      index - the index into the constant pool table
      Returns:
      the descriptor_index specifying the type descriptor of that member. If it is not that member, isMember() returns 0.
    • eqMember

      public String eqMember(String membername, String desc, int index)
      Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure at the given index has the name and the descriptor given as the arguments.
      Parameters:
      membername - the member name
      desc - the descriptor of the member.
      index - the index into the constant pool table
      Returns:
      the name of the target class specified by the ..._info structure at index. Otherwise, null if that structure does not match the given member name and descriptor.
    • copy

      public int copy(int n, ConstPool dest, Map<String,String> classnames)
      Copies the n-th item in this ConstPool object into the destination ConstPool object. The class names that the item refers to are renamed according to the given map.
      Parameters:
      n - the n-th item
      dest - destination constant pool table
      classnames - the map or null.
      Returns:
      the index of the copied item into the destination ClassPool.
    • addClassInfo

      public int addClassInfo(CtClass c)
      Adds a new CONSTANT_Class_info structure.

      This also adds a CONSTANT_Utf8_info structure for storing the class name.

      Returns:
      the index of the added entry.
    • addClassInfo

      public int addClassInfo(String qname)
      Adds a new CONSTANT_Class_info structure.

      This also adds a CONSTANT_Utf8_info structure for storing the class name.

      Parameters:
      qname - a fully-qualified class name (or the JVM-internal representation of that name).
      Returns:
      the index of the added entry.
    • addNameAndTypeInfo

      public int addNameAndTypeInfo(String name, String type)
      Adds a new CONSTANT_NameAndType_info structure.

      This also adds CONSTANT_Utf8_info structures.

      Parameters:
      name - name_index
      type - descriptor_index
      Returns:
      the index of the added entry.
    • addNameAndTypeInfo

      public int addNameAndTypeInfo(int name, int type)
      Adds a new CONSTANT_NameAndType_info structure.
      Parameters:
      name - name_index
      type - descriptor_index
      Returns:
      the index of the added entry.
    • addFieldrefInfo

      public int addFieldrefInfo(int classInfo, String name, String type)
      Adds a new CONSTANT_Fieldref_info structure.

      This also adds a new CONSTANT_NameAndType_info structure.

      Parameters:
      classInfo - class_index
      name - name_index of CONSTANT_NameAndType_info.
      type - descriptor_index of CONSTANT_NameAndType_info.
      Returns:
      the index of the added entry.
    • addFieldrefInfo

      public int addFieldrefInfo(int classInfo, int nameAndTypeInfo)
      Adds a new CONSTANT_Fieldref_info structure.
      Parameters:
      classInfo - class_index
      nameAndTypeInfo - name_and_type_index.
      Returns:
      the index of the added entry.
    • addMethodrefInfo

      public int addMethodrefInfo(int classInfo, String name, String type)
      Adds a new CONSTANT_Methodref_info structure.

      This also adds a new CONSTANT_NameAndType_info structure.

      Parameters:
      classInfo - class_index
      name - name_index of CONSTANT_NameAndType_info.
      type - descriptor_index of CONSTANT_NameAndType_info.
      Returns:
      the index of the added entry.
    • addMethodrefInfo

      public int addMethodrefInfo(int classInfo, int nameAndTypeInfo)
      Adds a new CONSTANT_Methodref_info structure.
      Parameters:
      classInfo - class_index
      nameAndTypeInfo - name_and_type_index.
      Returns:
      the index of the added entry.
    • addInterfaceMethodrefInfo

      public int addInterfaceMethodrefInfo(int classInfo, String name, String type)
      Adds a new CONSTANT_InterfaceMethodref_info structure.

      This also adds a new CONSTANT_NameAndType_info structure.

      Parameters:
      classInfo - class_index
      name - name_index of CONSTANT_NameAndType_info.
      type - descriptor_index of CONSTANT_NameAndType_info.
      Returns:
      the index of the added entry.
    • addInterfaceMethodrefInfo

      public int addInterfaceMethodrefInfo(int classInfo, int nameAndTypeInfo)
      Adds a new CONSTANT_InterfaceMethodref_info structure.
      Parameters:
      classInfo - class_index
      nameAndTypeInfo - name_and_type_index.
      Returns:
      the index of the added entry.
    • addStringInfo

      public int addStringInfo(String str)
      Adds a new CONSTANT_String_info structure.

      This also adds a new CONSTANT_Utf8_info structure.

      Returns:
      the index of the added entry.
    • addIntegerInfo

      public int addIntegerInfo(int i)
      Adds a new CONSTANT_Integer_info structure.
      Returns:
      the index of the added entry.
    • addFloatInfo

      public int addFloatInfo(float f)
      Adds a new CONSTANT_Float_info structure.
      Returns:
      the index of the added entry.
    • addLongInfo

      public int addLongInfo(long l)
      Adds a new CONSTANT_Long_info structure.
      Returns:
      the index of the added entry.
    • addDoubleInfo

      public int addDoubleInfo(double d)
      Adds a new CONSTANT_Double_info structure.
      Returns:
      the index of the added entry.
    • addUtf8Info

      public int addUtf8Info(String utf8)
      Adds a new CONSTANT_Utf8_info structure.
      Returns:
      the index of the added entry.
    • addMethodHandleInfo

      public int addMethodHandleInfo(int kind, int index)
      Adds a new CONSTANT_MethodHandle_info structure.
      Parameters:
      kind - reference_kind such as REF_invokeStatic.
      index - reference_index.
      Returns:
      the index of the added entry.
      Since:
      3.17
    • addMethodTypeInfo

      public int addMethodTypeInfo(int desc)
      Adds a new CONSTANT_MethodType_info structure.
      Parameters:
      desc - descriptor_index.
      Returns:
      the index of the added entry.
      Since:
      3.17
    • addInvokeDynamicInfo

      public int addInvokeDynamicInfo(int bootstrap, int nameAndType)
      Adds a new CONSTANT_InvokeDynamic_info structure.
      Parameters:
      bootstrap - bootstrap_method_attr_index.
      nameAndType - name_and_type_index.
      Returns:
      the index of the added entry.
      Since:
      3.17
    • addDynamicInfo

      public int addDynamicInfo(int bootstrap, int nameAndType)
      Adds a new CONSTANT_Dynamic_info structure.
      Parameters:
      bootstrap - bootstrap_method_attr_index.
      nameAndType - name_and_type_index.
      Returns:
      the index of the added entry.
      Since:
      3.26
    • addModuleInfo

      public int addModuleInfo(int nameIndex)
      Adds a new CONSTANT_Module_info
      Parameters:
      nameIndex - the index of the Utf8 entry.
      Returns:
      the index of the added entry.
      Since:
      3.22
    • addPackageInfo

      public int addPackageInfo(int nameIndex)
      Adds a new CONSTANT_Package_info
      Parameters:
      nameIndex - the index of the Utf8 entry.
      Returns:
      the index of the added entry.
      Since:
      3.22
    • getClassNames

      public Set<String> getClassNames()
      Get all the class names.
      Returns:
      a set of class names (String objects).
    • renameClass

      public void renameClass(String oldName, String newName)
      Replaces all occurrences of a class name.
      Parameters:
      oldName - the replaced name (JVM-internal representation).
      newName - the substituted name (JVM-internal representation).
    • renameClass

      public void renameClass(Map<String,String> classnames)
      Replaces all occurrences of class names.
      Parameters:
      classnames - specifies pairs of replaced and substituted name.
    • write

      public void write(DataOutputStream out) throws IOException
      Writes the contents of the constant pool table.
      Throws:
      IOException
    • print

      public void print()
      Prints the contents of the constant pool table.
    • print

      public void print(PrintWriter out)
      Prints the contents of the constant pool table.