All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class de.fub.bytecode.generic.ConstantPoolGen

java.lang.Object
   |
   +----de.fub.bytecode.generic.ConstantPoolGen

public class ConstantPoolGen
extends Object
implements Constants
This class is used to build up a constant pool. The user adds constants via `addXXX' methods, `addString', `addClass', etc.. These methods return an index into the constant pool. Finally, `getFinalConstantPool()' returns the constant pool built up. Intermediate versions of the constant pool can be obtained with `getConstantPool()'. A constant pool has capacity for Constants.MAX_SHORT entries. Note that the first (0) is used by the JVM and that Double and Long constants need two slots.

Version:
$Id: ConstantPoolGen.java,v 1.15 1999/12/03 14:31:03 dahm Exp $
Author:
M. Dahm
See Also:
Constant

Variable Index

 o constants
 o index
 o size

Constructor Index

 o ConstantPoolGen()
Create empty constant pool.
 o ConstantPoolGen(Constant[])
Initialize with given array of constants.
 o ConstantPoolGen(ConstantPool)
Initialize with given constant pool.

Method Index

 o addArrayClass(ArrayType)
Add a reference to an array class (e.g.
 o addClass(ObjectType)
Add a new Class reference to the ConstantPool for a given type.
 o addClass(String)
Add a new Class reference to the ConstantPool, if it is not already in there.
 o addDouble(double)
Add a new double constant to the ConstantPool, if it is not already in there.
 o addFieldref(String, String, String)
Add a new Fieldref constant to the ConstantPool, if it is not already in there.
 o addFloat(float)
Add a new Float constant to the ConstantPool, if it is not already in there.
 o addInteger(int)
Add a new Integer constant to the ConstantPool, if it is not already in there.
 o addInterfaceMethodref(MethodGen)
 o addInterfaceMethodref(String, String, String)
Add a new InterfaceMethodref constant to the ConstantPool, if it is not already in there.
 o addLong(long)
Add a new long constant to the ConstantPool, if it is not already in there.
 o addMethodref(MethodGen)
 o addMethodref(String, String, String)
Add a new Methodref constant to the ConstantPool, if it is not already in there.
 o addNameAndType(String, String)
Add a new NameAndType constant to the ConstantPool if it is not already in there.
 o addString(String)
Add a new String constant to the ConstantPool, if it is not already in there.
 o addUtf8(String)
Add a new Utf8 constant to the ConstantPool, if it is not already in there.
 o adjustSize()
Resize internal array of constants.
 o getConstant(int)
 o getConstantPool()
 o getFinalConstantPool()
 o getSize()
 o lookupClass(String)
Look for ConstantClass in ConstantPool named `str'.
 o lookupDouble(double)
Look for ConstantDouble in ConstantPool.
 o lookupFieldref(String, String, String)
Look for ConstantFieldref in ConstantPool.
 o lookupFloat(float)
Look for ConstantFloat in ConstantPool.
 o lookupInteger(int)
Look for ConstantInteger in ConstantPool.
 o lookupInterfaceMethodref(MethodGen)
 o lookupInterfaceMethodref(String, String, String)
Look for ConstantInterfaceMethodref in ConstantPool.
 o lookupLong(long)
Look for ConstantLong in ConstantPool.
 o lookupMethodref(MethodGen)
 o lookupMethodref(String, String, String)
Look for ConstantMethodref in ConstantPool.
 o lookupNameAndType(String, String)
Look for ConstantNameAndType in ConstantPool.
 o lookupString(String)
Look for ConstantString in ConstantPool containing String `str'.
 o lookupUtf8(String)
Look for ConstantUtf8 in ConstantPool.
 o setConstant(int, Constant)
Use with care!
 o toString()

Variables

 o size
 protected int size
 o constants
 protected Constant constants[]
 o index
 protected int index

Constructors

 o ConstantPoolGen
 public ConstantPoolGen(Constant cs[])
Initialize with given array of constants.

Parameters:
c - array of given constants, new ones will be appended
 o ConstantPoolGen
 public ConstantPoolGen(ConstantPool cp)
Initialize with given constant pool.

 o ConstantPoolGen
 public ConstantPoolGen()
Create empty constant pool.

Methods

 o adjustSize
 protected void adjustSize()
Resize internal array of constants.

 o lookupString
 public int lookupString(String str)
Look for ConstantString in ConstantPool containing String `str'.

Parameters:
str - String to search for
Returns:
index on success, -1 otherwise
 o addString
 public int addString(String str)
Add a new String constant to the ConstantPool, if it is not already in there.

Parameters:
str - String to add
Returns:
index of entry
 o lookupClass
 public int lookupClass(String str)
Look for ConstantClass in ConstantPool named `str'.

Parameters:
str - String to search for
Returns:
index on success, -1 otherwise
 o addClass
 public int addClass(String str)
Add a new Class reference to the ConstantPool, if it is not already in there.

Parameters:
str - Class to add
Returns:
index of entry
 o addClass
 public int addClass(ObjectType type)
Add a new Class reference to the ConstantPool for a given type.

Parameters:
str - Class to add
Returns:
index of entry
 o addArrayClass
 public int addArrayClass(ArrayType type)
Add a reference to an array class (e.g. String[][]) as needed by MULTIANEWARRAY instruction, e.g. to the ConstantPool.

Parameters:
type - type of array class
Returns:
index of entry
 o lookupInteger
 public int lookupInteger(int n)
Look for ConstantInteger in ConstantPool.

Parameters:
n - integer number to look for
Returns:
index on success, -1 otherwise
 o addInteger
 public int addInteger(int n)
Add a new Integer constant to the ConstantPool, if it is not already in there.

Parameters:
n - integer number to add
Returns:
index of entry
 o lookupFloat
 public int lookupFloat(float n)
Look for ConstantFloat in ConstantPool.

Parameters:
n - Float number to look for
Returns:
index on success, -1 otherwise
 o addFloat
 public int addFloat(float n)
Add a new Float constant to the ConstantPool, if it is not already in there.

Parameters:
n - Float number to add
Returns:
index of entry
 o lookupUtf8
 public int lookupUtf8(String n)
Look for ConstantUtf8 in ConstantPool.

Parameters:
n - Utf8 string to look for
Returns:
index on success, -1 otherwise
 o addUtf8
 public int addUtf8(String n)
Add a new Utf8 constant to the ConstantPool, if it is not already in there.

Parameters:
n - Utf8 string to add
Returns:
index of entry
 o lookupLong
 public int lookupLong(long n)
Look for ConstantLong in ConstantPool.

Parameters:
n - Long number to look for
Returns:
index on success, -1 otherwise
 o addLong
 public int addLong(long n)
Add a new long constant to the ConstantPool, if it is not already in there.

Parameters:
n - Long number to add
Returns:
index of entry
 o lookupDouble
 public int lookupDouble(double n)
Look for ConstantDouble in ConstantPool.

Parameters:
n - Double number to look for
Returns:
index on success, -1 otherwise
 o addDouble
 public int addDouble(double n)
Add a new double constant to the ConstantPool, if it is not already in there.

Parameters:
n - Double number to add
Returns:
index of entry
 o lookupNameAndType
 public int lookupNameAndType(String name,
                              String signature)
Look for ConstantNameAndType in ConstantPool.

Parameters:
name - of variable/method
signature - of variable/method
Returns:
index on success, -1 otherwise
 o addNameAndType
 public int addNameAndType(String name,
                           String signature)
Add a new NameAndType constant to the ConstantPool if it is not already in there.

Parameters:
n - NameAndType string to add
Returns:
index of entry
 o lookupMethodref
 public int lookupMethodref(String class_name,
                            String method_name,
                            String signature)
Look for ConstantMethodref in ConstantPool.

Parameters:
class_name - Where to find method
method_name - Guess what
signature - return and argument types
Returns:
index on success, -1 otherwise
 o lookupMethodref
 public int lookupMethodref(MethodGen method)
 o addMethodref
 public int addMethodref(String class_name,
                         String method_name,
                         String signature)
Add a new Methodref constant to the ConstantPool, if it is not already in there.

Parameters:
n - Methodref string to add
Returns:
index of entry
 o addMethodref
 public int addMethodref(MethodGen method)
 o lookupInterfaceMethodref
 public int lookupInterfaceMethodref(String class_name,
                                     String method_name,
                                     String signature)
Look for ConstantInterfaceMethodref in ConstantPool.

Parameters:
class_name - Where to find method
method_name - Guess what
signature - return and argument types
Returns:
index on success, -1 otherwise
 o lookupInterfaceMethodref
 public int lookupInterfaceMethodref(MethodGen method)
 o addInterfaceMethodref
 public int addInterfaceMethodref(String class_name,
                                  String method_name,
                                  String signature)
Add a new InterfaceMethodref constant to the ConstantPool, if it is not already in there.

Parameters:
n - InterfaceMethodref string to add
Returns:
index of entry
 o addInterfaceMethodref
 public int addInterfaceMethodref(MethodGen method)
 o lookupFieldref
 public int lookupFieldref(String class_name,
                           String field_name,
                           String signature)
Look for ConstantFieldref in ConstantPool.

Parameters:
class_name - Where to find method
field_name - Guess what
signature - return and argument types
Returns:
index on success, -1 otherwise
 o addFieldref
 public int addFieldref(String class_name,
                        String field_name,
                        String signature)
Add a new Fieldref constant to the ConstantPool, if it is not already in there.

Parameters:
n - Fieldref string to add
Returns:
index of entry
 o getConstant
 public Constant getConstant(int i)
Parameters:
i - index in constant pool
Returns:
constant pool entry at index i
 o setConstant
 public void setConstant(int i,
                         Constant c)
Use with care!

Parameters:
i - index in constant pool
c - new constant pool entry at index i
 o getConstantPool
 public ConstantPool getConstantPool()
Returns:
intermediate constant pool
 o getSize
 public int getSize()
Returns:
current size of constant pool
 o getFinalConstantPool
 public ConstantPool getFinalConstantPool()
Returns:
constant pool with proper length
 o toString
 public String toString()
Returns:
String representation.
Overrides:
toString in class Object

All Packages  Class Hierarchy  This Package  Previous  Next  Index