pnuts.compiler
Class ClassFile

java.lang.Object
  extended by pnuts.compiler.ClassFile

public class ClassFile
extends java.lang.Object

This class provides a way of making Java class file image.


Field Summary
 ClassFile parent
           
 
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
 

Field Detail

parent

public ClassFile parent
Constructor Detail

ClassFile

public ClassFile(java.lang.String thisClass,
                 java.lang.String superClass,
                 java.lang.String sourceFile,
                 short accessFlags)
Method Detail

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