Package serp.bytecode.lowlevel

# Class ConstantPoolTable

java.lang.Object
serp.bytecode.lowlevel.ConstantPoolTable

public class ConstantPoolTable extends Object
Efficient representation of the constant pool as a table. This class can be used to parse out bits of information from bytecode without instantiating a full `BCClass`.

Author:
  Abe White

## Constructor Summary

Constructors
Constructor
Description
`ConstantPoolTable(byte[] b)`
Constructor; supply class bytecode.
`ConstantPoolTable(InputStream in)`
Constructor; supply input stream to bytecode.

## Method Summary

Modifier and Type
Method
Description
`int`
`get(int idx)`
Return the given table entry.
`int`
`getEndIndex()`
Return the index into the bytecode of the end of the constant pool.
`static int`
`getEndIndex(byte[] b)`
Allows static computation of the byte index after the constant pool without caching constant pool information.
`static int`
`readByte(byte[] b, int idx)`
Read a byte value at the given offset into the given bytecode.
`int`
`readByte(int idx)`
Read a byte value at the given offset.
`static int`
`readInt(byte[] b, int idx)`
Read an int value at the given offset into the given bytecode.
`int`
`readInt(int idx)`
Read an int value at the given offset.
`static long`
`readLong(byte[] b, int idx)`
Read a long value at the given offset into the given bytecode.
`long`
`readLong(int idx)`
Read a long value at the given offset.
`static String`
`readString(byte[] b, int idx)`
Read a UTF-8 string value at the given offset into the given bytecode.
`String`
`readString(int idx)`
Read a UTF-8 string value at the given offset.
`static int`
`readUnsignedShort(byte[] b, int idx)`
Read an unsigned short value at the given offset into the given bytecode.
`int`
`readUnsignedShort(int idx)`
Read an unsigned short value at the given offset.

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

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

## Constructor Details

### ConstantPoolTable

public ConstantPoolTable(byte[] b)
Constructor; supply class bytecode.

### ConstantPoolTable

public ConstantPoolTable(InputStream in) throws IOException
Constructor; supply input stream to bytecode.

Throws:
  `IOException`

## Method Details

### getEndIndex

public static int getEndIndex(byte[] b)
Allows static computation of the byte index after the constant pool without caching constant pool information.

### readByte

public static int readByte(byte[] b, int idx)
Read a byte value at the given offset into the given bytecode.

### readUnsignedShort

public static int readUnsignedShort(byte[] b, int idx)
Read an unsigned short value at the given offset into the given bytecode.

### readInt

public static int readInt(byte[] b, int idx)
Read an int value at the given offset into the given bytecode.

### readLong

public static long readLong(byte[] b, int idx)
Read a long value at the given offset into the given bytecode.

### readString

public static String readString(byte[] b, int idx)
Read a UTF-8 string value at the given offset into the given bytecode.

### getEndIndex

public int getEndIndex()
Return the index into the bytecode of the end of the constant pool.

### get

public int get(int idx)
Return the given table entry.

### readByte

public int readByte(int idx)
Read a byte value at the given offset.

### readUnsignedShort

public int readUnsignedShort(int idx)
Read an unsigned short value at the given offset.

### readInt

public int readInt(int idx)
Read an int value at the given offset.

### readLong

public long readLong(int idx)
Read a long value at the given offset.

### readString

public String readString(int idx)
Read a UTF-8 string value at the given offset.