Class ConstantPoolEntry

    • Field Detail

      • CONSTANT_UTF8

        public static final int CONSTANT_UTF8
        Tag value for UTF8 entries.
        See Also:
        Constant Field Values
      • CONSTANT_INTEGER

        public static final int CONSTANT_INTEGER
        Tag value for Integer entries.
        See Also:
        Constant Field Values
      • CONSTANT_FLOAT

        public static final int CONSTANT_FLOAT
        Tag value for Float entries.
        See Also:
        Constant Field Values
      • CONSTANT_LONG

        public static final int CONSTANT_LONG
        Tag value for Long entries.
        See Also:
        Constant Field Values
      • CONSTANT_DOUBLE

        public static final int CONSTANT_DOUBLE
        Tag value for Double entries.
        See Also:
        Constant Field Values
      • CONSTANT_CLASS

        public static final int CONSTANT_CLASS
        Tag value for Class entries.
        See Also:
        Constant Field Values
      • CONSTANT_STRING

        public static final int CONSTANT_STRING
        Tag value for String entries.
        See Also:
        Constant Field Values
      • CONSTANT_FIELDREF

        public static final int CONSTANT_FIELDREF
        Tag value for Field Reference entries.
        See Also:
        Constant Field Values
      • CONSTANT_METHODREF

        public static final int CONSTANT_METHODREF
        Tag value for Method Reference entries.
        See Also:
        Constant Field Values
      • CONSTANT_INTERFACEMETHODREF

        public static final int CONSTANT_INTERFACEMETHODREF
        Tag value for Interface Method Reference entries.
        See Also:
        Constant Field Values
      • CONSTANT_NAMEANDTYPE

        public static final int CONSTANT_NAMEANDTYPE
        Tag value for Name and Type entries.
        See Also:
        Constant Field Values
      • CONSTANT_METHODHANDLE

        public static final int CONSTANT_METHODHANDLE
        Tag value for Method Handle entries
        See Also:
        Constant Field Values
      • CONSTANT_METHODTYPE

        public static final int CONSTANT_METHODTYPE
        Tag value for Method Type entries
        See Also:
        Constant Field Values
      • CONSTANT_INVOKEDYNAMIC

        public static final int CONSTANT_INVOKEDYNAMIC
        Tag value for InvokeDynamic entries
        See Also:
        Constant Field Values
      • CONSTANT_MODULEINFO

        public static final int CONSTANT_MODULEINFO
        Tag value for CONSTANT_Module_info entry
        See Also:
        Constant Field Values
      • CONSTANT_PACKAGEINFO

        public static final int CONSTANT_PACKAGEINFO
        Tag value for CONSTANT_Package_info entry (within a module)
        See Also:
        Constant Field Values
    • Constructor Detail

      • ConstantPoolEntry

        public ConstantPoolEntry​(int tagValue,
                                 int entries)
        Initialise the constant pool entry.
        Parameters:
        tagValue - the tag value which identifies which type of constant pool entry this is.
        entries - the number of constant pool entry slots this entry occupies.
    • Method Detail

      • readEntry

        public static ConstantPoolEntry readEntry​(java.io.DataInputStream cpStream)
                                           throws java.io.IOException
        Read a constant pool entry from a stream. This is a factory method which reads a constant pool entry form a stream and returns the appropriate subclass for the entry.
        Parameters:
        cpStream - the stream from which the constant pool entry is to be read.
        Returns:
        the appropriate ConstantPoolEntry subclass representing the constant pool entry from the stream.
        Throws:
        java.io.IOException - if the constant pool entry cannot be read from the stream
      • isResolved

        public boolean isResolved()
        Indicates whether this entry has been resolved. In general a constant pool entry can reference another constant pool entry by its index value. Resolution involves replacing this index value with the constant pool entry at that index.
        Returns:
        true if this entry has been resolved.
      • resolve

        public void resolve​(ConstantPool constantPool)
        Resolve this constant pool entry with respect to its dependents in the constant pool.
        Parameters:
        constantPool - the constant pool of which this entry is a member and against which this entry is to be resolved.
      • read

        public abstract void read​(java.io.DataInputStream cpStream)
                           throws java.io.IOException
        read a constant pool entry from a class stream.
        Parameters:
        cpStream - the DataInputStream which contains the constant pool entry to be read.
        Throws:
        java.io.IOException - if there is a problem reading the entry from the stream.
      • getTag

        public int getTag()
        Get the Entry's type tag.
        Returns:
        The Tag value of this entry
      • getNumEntries

        public final int getNumEntries()
        Get the number of Constant Pool Entry slots within the constant pool occupied by this entry.
        Returns:
        the number of slots used.