Documentation of 'org.apache.bcel.classfile.ConstantPool' Java class
ConstantPool
org.apache.bcel.classfile

Class ConstantPool

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


    public class ConstantPool
    extends java.lang.Object
    implements java.lang.Cloneable, Node
    This class represents the constant pool, i.e., a table of constants, of a parsed classfile. It may contain null references, due to the JVM specification that skips an entry after an 8-byte constant (double, long) entry. Those interested in generating constant pools programatically should see ConstantPoolGen.
    See Also:
    Constant, ConstantPoolGen
    • Constructor Summary

      Constructors 
      Constructor and Description
      ConstantPool(Constant[] constantPool) 
      ConstantPool(java.io.DataInput input)
      Reads constants from given input stream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void accept(Visitor v)
      Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
      java.lang.String constantToString(Constant c)
      Resolves constant to a string representation.
      java.lang.String constantToString(int index, byte tag)
      Retrieves constant at `index' from constant pool and resolve it to a string representation.
      ConstantPool copy() 
      void dump(java.io.DataOutputStream file)
      Dump constant pool to file stream in binary format.
      Constant getConstant(int index)
      Gets constant from constant pool.
      Constant getConstant(int index, byte tag)
      Gets constant from constant pool and check whether it has the expected type.
      Constant[] getConstantPool() 
      java.lang.String getConstantString(int index, byte tag)
      Gets string from constant pool and bypass the indirection of `ConstantClass' and `ConstantString' objects.
      int getLength() 
      void setConstant(int index, Constant constant) 
      void setConstantPool(Constant[] constantPool) 
      java.lang.String toString() 
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ConstantPool

        public ConstantPool(Constant[] constantPool)
        Parameters:
        constantPool - Array of constants
      • ConstantPool

        public ConstantPool(java.io.DataInput input)
                     throws java.io.IOException,
                            ClassFormatException
        Reads constants from given input stream.
        Parameters:
        input - Input stream
        Throws:
        java.io.IOException
        ClassFormatException
    • Method Detail

      • accept

        public void accept(Visitor v)
        Called by objects that are traversing the nodes of the tree implicitely 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
        Parameters:
        v - Visitor object
      • constantToString

        public java.lang.String constantToString(Constant c)
                                          throws ClassFormatException
        Resolves constant to a string representation.
        Parameters:
        c - Constant to be printed
        Returns:
        String representation
        Throws:
        ClassFormatException
      • constantToString

        public java.lang.String constantToString(int index,
                                                 byte tag)
                                          throws ClassFormatException
        Retrieves constant at `index' from constant pool and resolve it to a string representation.
        Parameters:
        index - of constant in constant pool
        tag - expected type
        Returns:
        String representation
        Throws:
        ClassFormatException
      • dump

        public void dump(java.io.DataOutputStream file)
                  throws java.io.IOException
        Dump constant pool to file stream in binary format.
        Parameters:
        file - Output file stream
        Throws:
        java.io.IOException
      • getConstant

        public Constant getConstant(int index)
        Gets constant from constant pool.
        Parameters:
        index - Index in constant pool
        Returns:
        Constant value
        See Also:
        Constant
      • getConstant

        public Constant getConstant(int index,
                                    byte tag)
                             throws ClassFormatException
        Gets constant from constant pool and check whether it has the expected type.
        Parameters:
        index - Index in constant pool
        tag - Tag of expected constant, i.e., its type
        Returns:
        Constant value
        Throws:
        ClassFormatException
        See Also:
        Constant
      • getConstantPool

        public Constant[] getConstantPool()
        Returns:
        Array of constants.
        See Also:
        Constant
      • getConstantString

        public java.lang.String getConstantString(int index,
                                                  byte tag)
                                           throws ClassFormatException
        Gets string from constant pool and bypass the indirection of `ConstantClass' and `ConstantString' objects. I.e. these classes have an index field that points to another entry of the constant pool of type `ConstantUtf8' which contains the real data.
        Parameters:
        index - Index in constant pool
        tag - Tag of expected constant, either ConstantClass or ConstantString
        Returns:
        Contents of string reference
        Throws:
        ClassFormatException
        See Also:
        ConstantClass, ConstantString
      • getLength

        public int getLength()
        Returns:
        Length of constant pool.
      • setConstant

        public void setConstant(int index,
                                Constant constant)
        Parameters:
        constant - Constant to set
      • setConstantPool

        public void setConstantPool(Constant[] constantPool)
        Parameters:
        constantPool -
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        String representation.
      • copy

        public ConstantPool copy()
        Returns:
        deep copy of this constant pool

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.