pnuts.compiler
Class ClassFile
java.lang.Object
pnuts.compiler.ClassFile
public class ClassFile
- extends java.lang.Object
This class provides a way of making Java class file image.
Constructor Summary |
ClassFile(java.lang.String thisClass,
java.lang.String superClass,
java.lang.String sourceFile,
short accessFlags)
|
Method Summary |
void |
add(byte opcode)
|
void |
add(byte opcode,
int operand)
|
void |
add(byte opcode,
int operand1,
int operand2)
|
void |
add(byte opcode,
Label label)
|
void |
add(byte opcode,
java.lang.String className)
|
void |
add(byte opcode,
java.lang.String className,
java.lang.String fieldName,
java.lang.String fieldType)
|
void |
add(byte opcode,
java.lang.String className,
java.lang.String methodName,
java.lang.String parametersType,
java.lang.String returnType)
|
void |
addByte(byte val)
|
short |
addConstant(java.lang.String value)
|
void |
addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
double value)
|
void |
addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
int value)
|
void |
addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
long value)
|
void |
addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
short valueIndex)
|
void |
addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
java.lang.String value)
|
void |
addExceptionHandler(Label startLabel,
Label endLabel,
Label handlerLabel,
java.lang.String catchClassName)
|
void |
addField(java.lang.String fieldName,
java.lang.String type,
short accessFlags)
|
void |
addInt(int ival)
|
void |
addInterface(java.lang.String interfaceName)
|
void |
addLineNumber(int line)
|
void |
closeMethod()
|
int |
codeSize()
|
int |
declareLocal()
|
void |
dloadLocal(int index)
|
void |
floadLocal(int index)
|
void |
freeLocal(int index)
|
java.lang.String |
getClassName()
|
Label |
getLabel()
|
Label |
getLabel(boolean fixed)
|
int |
getLocal()
|
void |
iloadLocal(int index)
|
void |
istoreLocal(int index)
|
void |
lloadLocal(int index)
|
void |
loadLocal(int index)
|
void |
openMethod(java.lang.String methodName,
java.lang.String type,
short flag)
|
void |
openMethod(java.lang.String methodName,
java.lang.String type,
short flag,
java.lang.String[] exceptions)
|
void |
pushDouble(double number)
|
void |
pushFloat(float number)
|
void |
pushInteger(int number)
|
void |
pushLong(long number)
|
void |
pushString(java.lang.String str)
|
void |
reserveStack(int size)
|
void |
shift(int offset)
|
static java.lang.String |
signature(java.lang.Class clazz)
|
static java.lang.String |
signature(java.lang.Class[] paramTypes)
|
static int |
sizeOfParameters(java.lang.String sig)
|
static int |
sizeOfReturn(java.lang.String sig)
|
void |
storeLocal(int index)
|
java.lang.String |
toString()
|
void |
write(java.io.OutputStream stream)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
parent
public ClassFile parent
ClassFile
public ClassFile(java.lang.String thisClass,
java.lang.String superClass,
java.lang.String sourceFile,
short accessFlags)
getClassName
public java.lang.String getClassName()
codeSize
public int codeSize()
addInterface
public void addInterface(java.lang.String interfaceName)
addField
public void addField(java.lang.String fieldName,
java.lang.String type,
short accessFlags)
addConstant
public short addConstant(java.lang.String value)
addConstant
public void addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
short valueIndex)
addConstant
public void addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
int value)
addConstant
public void addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
long value)
addConstant
public void addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
double value)
addConstant
public void addConstant(java.lang.String fieldName,
java.lang.String type,
short flags,
java.lang.String value)
openMethod
public void openMethod(java.lang.String methodName,
java.lang.String type,
short flag)
openMethod
public void openMethod(java.lang.String methodName,
java.lang.String type,
short flag,
java.lang.String[] exceptions)
closeMethod
public void closeMethod()
shift
public void shift(int offset)
add
public void add(byte opcode)
addByte
public void addByte(byte val)
addInt
public void addInt(int ival)
getLabel
public Label getLabel()
getLabel
public Label getLabel(boolean fixed)
declareLocal
public int declareLocal()
getLocal
public int getLocal()
freeLocal
public void freeLocal(int index)
istoreLocal
public void istoreLocal(int index)
iloadLocal
public void iloadLocal(int index)
lloadLocal
public void lloadLocal(int index)
floadLocal
public void floadLocal(int index)
dloadLocal
public void dloadLocal(int index)
loadLocal
public void loadLocal(int index)
storeLocal
public void storeLocal(int index)
add
public void add(byte opcode,
Label label)
pushInteger
public void pushInteger(int number)
pushLong
public void pushLong(long number)
pushFloat
public void pushFloat(float number)
pushDouble
public void pushDouble(double number)
pushString
public void pushString(java.lang.String str)
add
public void add(byte opcode,
int operand)
add
public void add(byte opcode,
int operand1,
int operand2)
add
public void add(byte opcode,
java.lang.String className)
add
public void add(byte opcode,
java.lang.String className,
java.lang.String fieldName,
java.lang.String fieldType)
add
public void add(byte opcode,
java.lang.String className,
java.lang.String methodName,
java.lang.String parametersType,
java.lang.String returnType)
reserveStack
public void reserveStack(int size)
sizeOfReturn
public static final int sizeOfReturn(java.lang.String sig)
sizeOfParameters
public static final int sizeOfParameters(java.lang.String sig)
addExceptionHandler
public void addExceptionHandler(Label startLabel,
Label endLabel,
Label handlerLabel,
java.lang.String catchClassName)
write
public void write(java.io.OutputStream stream)
throws java.io.IOException
- Throws:
java.io.IOException
signature
public static java.lang.String signature(java.lang.Class[] paramTypes)
signature
public static java.lang.String signature(java.lang.Class clazz)
addLineNumber
public void addLineNumber(int line)
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object