net.sf.rej.java.constantpool
Class ConstantPool

java.lang.Object
  extended by net.sf.rej.java.constantpool.ConstantPool
All Implemented Interfaces:
java.lang.Iterable<ConstantPoolInfo>

public class ConstantPool
extends java.lang.Object
implements java.lang.Iterable<ConstantPoolInfo>


Constructor Summary
ConstantPool()
           
 
Method Summary
 void dump(java.io.PrintStream out)
          Method for debugging, dumps the contents of the constant pool to the given PrintStream.
 int forceAdd(ConstantPoolInfo item)
           
 int forceAddClassRef(java.lang.String className)
           
 ConstantPoolInfo get(int i)
           
 byte[] getData()
          Serializes this constant pool into a byte array.
 java.util.Map<java.lang.Object,Range> getOffsetMap(int initialOffset)
          Returns a map of offsets of each significant element of this method.
 int indexOf(ConstantPoolInfo item)
           
 int indexOfClassRef(java.lang.String className)
           
 int indexOfFieldRef(java.lang.String className, java.lang.String fieldName, java.lang.String type)
           
 int indexOfMethodRef(java.lang.String className, java.lang.String methodName, java.lang.String type)
           
 int indexOfNameAndTypeRef(java.lang.String methodName, java.lang.String type)
           
 int indexOfUtf8(java.lang.String text)
           
 void init(int size)
           
 java.util.Iterator<ConstantPoolInfo> iterator()
           
 int optionalAdd(ConstantPoolInfo item)
           
 int optionalAddClassRef(java.lang.String className)
           
 int optionalAddFieldRef(java.lang.String className, java.lang.String fieldName, java.lang.String type)
           
 int optionalAddMethodRef(java.lang.String className, java.lang.String methodName, java.lang.String type)
           
 int optionalAddNameAndTypeRef(java.lang.String methodName, java.lang.String type)
           
 int optionalAddString(java.lang.String text)
           
 int optionalAddUtf8(java.lang.String text)
           
 void removeLast()
           
 void removeLast(int index)
           
 void set(int i, ConstantPoolInfo info)
           
 void shrinkToSize(int size)
          Removes items from the end of the constant pool until there are only size items left.
 int size()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConstantPool

public ConstantPool()
Method Detail

init

public void init(int size)

get

public ConstantPoolInfo get(int i)

set

public void set(int i,
                ConstantPoolInfo info)

size

public int size()

indexOf

public int indexOf(ConstantPoolInfo item)

optionalAdd

public int optionalAdd(ConstantPoolInfo item)

forceAdd

public int forceAdd(ConstantPoolInfo item)

optionalAddFieldRef

public int optionalAddFieldRef(java.lang.String className,
                               java.lang.String fieldName,
                               java.lang.String type)

optionalAddMethodRef

public int optionalAddMethodRef(java.lang.String className,
                                java.lang.String methodName,
                                java.lang.String type)

optionalAddNameAndTypeRef

public int optionalAddNameAndTypeRef(java.lang.String methodName,
                                     java.lang.String type)

optionalAddClassRef

public int optionalAddClassRef(java.lang.String className)

forceAddClassRef

public int forceAddClassRef(java.lang.String className)

optionalAddUtf8

public int optionalAddUtf8(java.lang.String text)

optionalAddString

public int optionalAddString(java.lang.String text)

removeLast

public void removeLast(int index)

removeLast

public void removeLast()

indexOfClassRef

public int indexOfClassRef(java.lang.String className)

indexOfNameAndTypeRef

public int indexOfNameAndTypeRef(java.lang.String methodName,
                                 java.lang.String type)

indexOfFieldRef

public int indexOfFieldRef(java.lang.String className,
                           java.lang.String fieldName,
                           java.lang.String type)

indexOfMethodRef

public int indexOfMethodRef(java.lang.String className,
                            java.lang.String methodName,
                            java.lang.String type)

indexOfUtf8

public int indexOfUtf8(java.lang.String text)

dump

public void dump(java.io.PrintStream out)
Method for debugging, dumps the contents of the constant pool to the given PrintStream.

Parameters:
out -

iterator

public java.util.Iterator<ConstantPoolInfo> iterator()
Specified by:
iterator in interface java.lang.Iterable<ConstantPoolInfo>

shrinkToSize

public void shrinkToSize(int size)
Removes items from the end of the constant pool until there are only size items left.

Parameters:
size - new size for the constantpool, must be smaller than the current size.

getData

public byte[] getData()
Serializes this constant pool into a byte array. The serialization format is according to the java class file format.

Returns:
this constant pool as a byte array.

getOffsetMap

public java.util.Map<java.lang.Object,Range> getOffsetMap(int initialOffset)
Returns a map of offsets of each significant element of this method. The offsets returned by this method are only valid until this object is modified. The keys in the map are of type OffsetTag, Attribute.

Parameters:
initialOffset - an offset to be added to each of the offsets in the map.
Returns:
a map of element offsets in class file data.