Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.bcel.classfile
Class ConstantPool

    java.lang.Object
      |
      +--org.apache.bcel.classfile.ConstantPool

All Implemented Interfaces:
  java.lang.Cloneable, Node, java.io.Serializable

public class ConstantPool
extends java.lang.Object
implements java.lang.Cloneable, Node, java.io.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,v 1.6 2002/07/11 19:39:04 mdahm Exp $
Author:
  M. Dahm
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.
`java.lang.String` | `constantToString(Constant c)` Resolve constant to a string representation.
`java.lang.String` | `constantToString(int index, byte tag)` Retrieve 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)` 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()`
`java.lang.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)`
`java.lang.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 java.lang.String constantToString(Constant c)
                                      throws ClassFormatException

  Resolve constant to a string representation.

  Returns:
    String representation
    `ClassFormatException`

### constantToString

    public java.lang.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
    `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)

  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 java.lang.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 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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