org.apache.tools.ant.taskdefs.optional.depend.constantpool

## Class ConstantPoolEntry

- java.lang.Object
- - org.apache.tools.ant.taskdefs.optional.depend.constantpool.ConstantPoolEntry

Direct Known Subclasses:
  ClassCPInfo, ConstantCPInfo, FieldRefCPInfo, InterfaceMethodRefCPInfo, MethodHandleCPInfo, MethodRefCPInfo, NameAndTypeCPInfo, Utf8CPInfo

    public abstract class ConstantPoolEntry
    extends java.lang.Object

An entry in the constant pool. This class contains a representation of the constant pool entries. It is an abstract base class for all the different forms of constant pool entry.

See Also:
  `ConstantPool`

### Field Summary

Fields
`static int` `CONSTANT_CLASS` Tag value for Class entries.
`static int` `CONSTANT_DOUBLE` Tag value for Double entries.
`static int` `CONSTANT_FIELDREF` Tag value for Field Reference entries.
`static int` `CONSTANT_FLOAT` Tag value for Float entries.
`static int` `CONSTANT_INTEGER` Tag value for Integer entries.
`static int` `CONSTANT_INTERFACEMETHODREF` Tag value for Interface Method Reference entries.
`static int` `CONSTANT_INVOKEDYNAMIC` Tag value for InvokeDynamic entries
`static int` `CONSTANT_LONG` Tag value for Long entries.
`static int` `CONSTANT_METHODHANDLE` Tag value for Method Handle entries
`static int` `CONSTANT_METHODREF` Tag value for Method Reference entries.
`static int` `CONSTANT_METHODTYPE` Tag value for Method Type entries
`static int` `CONSTANT_NAMEANDTYPE` Tag value for Name and Type entries.
`static int` `CONSTANT_STRING` Tag value for String entries.
`static int` `CONSTANT_UTF8` Tag value for UTF8 entries.

### Constructor Summary

Constructors
Constructor and Description
`ConstantPoolEntry(int tagValue, int entries)` Initialise the constant pool entry.

### Method Summary

Methods
`int` `getNumEntries()` Get the number of Constant Pool Entry slots within the constant pool occupied by this entry.
`int` `getTag()` Get the Entry's type tag.
`boolean` `isResolved()` Indicates whether this entry has been resolved.
`abstract void` `read(java.io.DataInputStream cpStream)` read a constant pool entry from a class stream.
`static ConstantPoolEntry` `readEntry(java.io.DataInputStream cpStream)` Read a constant pool entry from a stream.
`void` `resolve(ConstantPool constantPool)` Resolve this constant pool entry with respect to its dependents in the constant pool.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 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

### 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.