## org.apache.bcel.classfile
Class ConstantPool

    java.lang.Object
      org.apache.bcel.classfile.ConstantPool

All Implemented Interfaces:
  Serializable, Cloneable, Node

    public class ConstantPool

extends Object
implements Cloneable, Node, Serializable

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.

Version:
  $Id: ConstantPool.java 386056 2006-03-15 11:31:56Z tcurdt $
See Also:
  `Constant`, `ConstantPoolGen`, Serialized Form

Constructor Summary
`ConstantPool(Constant[] constant_pool)`

Method Summary
`void` `accept(Visitor v)` Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
`String` `constantToString(Constant c)` Resolve constant to a string representation.
`String` `constantToString(int index, byte tag)` Retrieve constant at `index' from constant pool and resolve it to a string representation.
`ConstantPool` `copy()`
`void` `dump(DataOutputStream file)` Dump constant pool to file stream in binary format.
`Constant` `getConstant(int index)` Get constant from constant pool.
`Constant` `getConstant(int index, byte tag)` Get constant from constant pool and check whether it has the expected type.
`Constant[]` `getConstantPool()`
`String` `getConstantString(int index, byte tag)` Get string from constant pool and bypass the indirection of `ConstantClass' and `ConstantString' objects.
`int` `getLength()`
`void` `setConstant(int index, Constant constant)`
`void` `setConstantPool(Constant[] constant_pool)`
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ConstantPool

    public ConstantPool(Constant[] constant_pool)

Parameters:
  `constant_pool` - Array of constants

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 String constantToString(Constant c)
                            throws ClassFormatException

  Resolve constant to a string representation.

  Parameters:
    `c` - Constant to be printed
  Returns:
    String representation
  Throws:
    `ClassFormatException`

### constantToString

    public String constantToString(int index,
                                   byte tag)
                            throws ClassFormatException

  Retrieve 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(DataOutputStream file)
              throws IOException

  Dump constant pool to file stream in binary format.

  Parameters:
    `file` - Output file stream
  Throws:
    `IOException`

### getConstant

    public Constant getConstant(int index)

  Get 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

  Get 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 String getConstantString(int index,
                                    byte tag)
                             throws ClassFormatException

  Get 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[] constant_pool)

  Parameters:
    `constant_pool` -

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`
  Returns:
    String representation.

### copy

    public ConstantPool copy()

  Returns:
    deep copy of this constant pool

Copyright © 2002-2006 Apache Software Foundation. All Rights Reserved.