com.judoscript.util.classfile
Class ClassFileWriter

java.lang.Object
  extended by com.judoscript.util.classfile.ClassFileWriter
All Implemented Interfaces:
ClassFileConsts

public class ClassFileWriter
extends java.lang.Object
implements ClassFileConsts


Field Summary
 java.lang.String className
           
 
Fields inherited from interface com.judoscript.util.classfile.ClassFileConsts
CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_Names, CONSTANT_String, CONSTANT_Utf8, instructions, M_CLS, M_CLSVAL, M_FLD, M_IFS, M_ITF, M_JMP, M_LOD, M_MTD, M_NON, M_TYP, M_UNK, M_VAL, M_VAR, M_VARVAL, MAJOR, MINOR, OPCODE_aaload, OPCODE_aastore, OPCODE_aconst_null, OPCODE_aload, OPCODE_aload_0, OPCODE_aload_1, OPCODE_aload_2, OPCODE_aload_3, OPCODE_anewarray, OPCODE_anewarray_quick, OPCODE_areturn, OPCODE_arraylength, OPCODE_astore, OPCODE_astore_0, OPCODE_astore_1, OPCODE_astore_2, OPCODE_astore_3, OPCODE_athrow, OPCODE_baload, OPCODE_bastore, OPCODE_bipush, OPCODE_breakpoint, OPCODE_caload, OPCODE_castore, OPCODE_checkcast, OPCODE_checkcast_quick, OPCODE_d2f, OPCODE_d2i, OPCODE_d2l, OPCODE_dadd, OPCODE_daload, OPCODE_dastore, OPCODE_dcmpg, OPCODE_dcmpl, OPCODE_dconst_0, OPCODE_dconst_1, OPCODE_ddiv, OPCODE_dload, OPCODE_dload_0, OPCODE_dload_1, OPCODE_dload_2, OPCODE_dload_3, OPCODE_dmul, OPCODE_dneg, OPCODE_drem, OPCODE_dreturn, OPCODE_dstore, OPCODE_dstore_0, OPCODE_dstore_1, OPCODE_dstore_2, OPCODE_dstore_3, OPCODE_dsub, OPCODE_dup, OPCODE_dup_x1, OPCODE_dup_x2, OPCODE_dup2, OPCODE_dup2_x1, OPCODE_dup2_x2, OPCODE_f2d, OPCODE_f2i, OPCODE_f2l, OPCODE_fadd, OPCODE_faload, OPCODE_fastore, OPCODE_fcmpg, OPCODE_fcmpl, OPCODE_fconst_0, OPCODE_fconst_1, OPCODE_fconst_2, OPCODE_fdiv, OPCODE_fload, OPCODE_fload_0, OPCODE_fload_1, OPCODE_fload_2, OPCODE_fload_3, OPCODE_fmul, OPCODE_fneg, OPCODE_frem, OPCODE_freturn, OPCODE_fstore, OPCODE_fstore_0, OPCODE_fstore_1, OPCODE_fstore_2, OPCODE_fstore_3, OPCODE_fsub, OPCODE_getfield, OPCODE_getfield_quick, OPCODE_getfield_quick_w, OPCODE_getfield2_quick, OPCODE_getstatic, OPCODE_getstatic_quick, OPCODE_getstatic2_quick, OPCODE_goto, OPCODE_goto_w, OPCODE_i2b, OPCODE_i2c, OPCODE_i2d, OPCODE_i2f, OPCODE_i2l, OPCODE_i2s, OPCODE_iadd, OPCODE_iaload, OPCODE_iand, OPCODE_iastore, OPCODE_iconst_0, OPCODE_iconst_1, OPCODE_iconst_2, OPCODE_iconst_3, OPCODE_iconst_4, OPCODE_iconst_5, OPCODE_iconst_m1, OPCODE_idiv, OPCODE_if_acmpeq, OPCODE_if_acmpne, OPCODE_if_icmpeq, OPCODE_if_icmpge, OPCODE_if_icmpgt, OPCODE_if_icmple, OPCODE_if_icmplt, OPCODE_if_icmpne, OPCODE_ifeq, OPCODE_ifge, OPCODE_ifgt, OPCODE_ifle, OPCODE_iflt, OPCODE_ifne, OPCODE_ifnonnull, OPCODE_ifnull, OPCODE_iinc, OPCODE_iload, OPCODE_iload_0, OPCODE_iload_1, OPCODE_iload_2, OPCODE_iload_3, OPCODE_impdep1, OPCODE_impdep2, OPCODE_imul, OPCODE_ineg, OPCODE_instanceof, OPCODE_instanceof_quick, OPCODE_invokeinterface, OPCODE_invokeinterface_quick, OPCODE_invokenonvirtual_quick, OPCODE_invokespecial, OPCODE_invokestatic, OPCODE_invokestatic_quick, OPCODE_invokesuper_quick, OPCODE_invokevirtual, OPCODE_invokevirtual_quick, OPCODE_invokevirtual_quick_w, OPCODE_invokevirtualobject_quick, OPCODE_ior, OPCODE_irem, OPCODE_ireturn, OPCODE_ishl, OPCODE_ishr, OPCODE_istore, OPCODE_istore_0, OPCODE_istore_1, OPCODE_istore_2, OPCODE_istore_3, OPCODE_isub, OPCODE_iushr, OPCODE_ixor, OPCODE_jsr, OPCODE_jsr_w, OPCODE_l2d, OPCODE_l2f, OPCODE_l2i, OPCODE_ladd, OPCODE_laload, OPCODE_land, OPCODE_lastore, OPCODE_lcmp, OPCODE_lconst_0, OPCODE_lconst_1, OPCODE_ldc, OPCODE_ldc_quick, OPCODE_ldc_w, OPCODE_ldc_w_quick, OPCODE_ldc2_w, OPCODE_ldc2_w_quick, OPCODE_ldiv, OPCODE_lload, OPCODE_lload_0, OPCODE_lload_1, OPCODE_lload_2, OPCODE_lload_3, OPCODE_lmul, OPCODE_lneg, OPCODE_lookupswitch, OPCODE_lor, OPCODE_lrem, OPCODE_lreturn, OPCODE_lshl, OPCODE_lshr, OPCODE_lstore, OPCODE_lstore_0, OPCODE_lstore_1, OPCODE_lstore_2, OPCODE_lstore_3, OPCODE_lsub, OPCODE_lushr, OPCODE_lxor, OPCODE_monitorenter, OPCODE_monitorexit, OPCODE_multianewarray, OPCODE_multianewarray_quick, OPCODE_new, OPCODE_new_quick, OPCODE_newarray, OPCODE_nop, OPCODE_pop, OPCODE_pop2, OPCODE_putfield, OPCODE_putfield_quick, OPCODE_putfield_quick_w, OPCODE_putfield2_quick, OPCODE_putstatic, OPCODE_putstatic_quick, OPCODE_putstatic2_quick, OPCODE_ret, OPCODE_return, OPCODE_saload, OPCODE_sastore, OPCODE_sipush, OPCODE_swap, OPCODE_tableswitch, OPCODE_wide, OPTYPES_NONE, OPTYPES_S2, OPTYPES_S4, OPTYPES_U1, OPTYPES_U1U1, OPTYPES_U2, OPTYPES_U2U1, OPTYPES_U2U1U1, T_S1, T_S2, T_S4, T_U1, T_U2, T_U4, UNDEFINED, UNK, UNKNOWN
 
Constructor Summary
ClassFileWriter(int accesses, java.lang.String thisclass, java.lang.Class[] parents)
           
ClassFileWriter(int accesses, java.lang.String thisclass, java.lang.String parentclass, java.lang.Class[] itfs)
           
ClassFileWriter(java.lang.String accesses, java.lang.String thisclass, java.lang.String parentclass, java.lang.Class[] itfs)
           
 
Method Summary
 void addAttr(Attr attr)
           
 Member addConstructor(int access, java.lang.Class[] params, java.lang.Class[] exceptions, Attr.Code code)
           
 Member addConstructor(int access, java.lang.String desc, java.lang.String[] exceptions, Attr.Code code)
           
 Member addConstructor(java.lang.String access, java.lang.String desc, java.lang.String[] exceptions, Attr.Code code)
           
 void addDefaultCtor()
           
 Member addField(int access, java.lang.String desc, java.lang.String name, Attr[] attrs)
           
 Member addField(java.lang.String desc, java.lang.String name)
           
 Member addField(java.lang.String access, java.lang.String desc, java.lang.String name, Attr[] attrs)
           
 Member addMethod(int access, java.lang.Class retType, java.lang.Class[] paramTypes, java.lang.String name, java.lang.Class[] exceptions, Attr.Code code)
           
 Member addMethod(int access, java.lang.String desc, java.lang.String name, java.lang.String[] exceptions, Attr.Code code)
           
 Member addMethod(java.lang.String access, java.lang.String desc, java.lang.String name, java.lang.String[] exceptions, Attr.Code code)
           
 Member addStaticInit(Attr.Code code)
           
 int cpClass(java.lang.String name)
           
 int cpDouble(double d)
           
 int cpFieldRef(java.lang.String className, java.lang.String name, java.lang.String type)
           
 int cpFloat(float f)
           
 int cpInt(int i)
           
 int cpInterfaceMethodRef(java.lang.String className, java.lang.String name, java.lang.String type)
           
 int cpLong(long l)
           
 int cpMethodRef(java.lang.String className, java.lang.String name, java.lang.String type)
           
 int cpNameAndType(java.lang.String name, java.lang.String type)
           
 int cpString(java.lang.String text)
           
 int cpUtf8(java.lang.String text)
           
 java.lang.String getCPClassName(int idx)
           
 java.lang.String getCPString(int idx)
           
 int getFieldRef(java.lang.String name)
           
 void helloWorld()
           
 java.lang.Class toClass()
           
 void write(java.io.OutputStream os)
           
 void write(java.lang.String fname)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

className

public java.lang.String className
Constructor Detail

ClassFileWriter

public ClassFileWriter(java.lang.String accesses,
                       java.lang.String thisclass,
                       java.lang.String parentclass,
                       java.lang.Class[] itfs)

ClassFileWriter

public ClassFileWriter(int accesses,
                       java.lang.String thisclass,
                       java.lang.String parentclass,
                       java.lang.Class[] itfs)

ClassFileWriter

public ClassFileWriter(int accesses,
                       java.lang.String thisclass,
                       java.lang.Class[] parents)
Method Detail

addField

public Member addField(java.lang.String desc,
                       java.lang.String name)

addField

public Member addField(int access,
                       java.lang.String desc,
                       java.lang.String name,
                       Attr[] attrs)

addField

public Member addField(java.lang.String access,
                       java.lang.String desc,
                       java.lang.String name,
                       Attr[] attrs)

getFieldRef

public int getFieldRef(java.lang.String name)
                throws BadClassFormatException
Throws:
BadClassFormatException

addMethod

public Member addMethod(java.lang.String access,
                        java.lang.String desc,
                        java.lang.String name,
                        java.lang.String[] exceptions,
                        Attr.Code code)

addMethod

public Member addMethod(int access,
                        java.lang.String desc,
                        java.lang.String name,
                        java.lang.String[] exceptions,
                        Attr.Code code)

addMethod

public Member addMethod(int access,
                        java.lang.Class retType,
                        java.lang.Class[] paramTypes,
                        java.lang.String name,
                        java.lang.Class[] exceptions,
                        Attr.Code code)

addConstructor

public Member addConstructor(int access,
                             java.lang.Class[] params,
                             java.lang.Class[] exceptions,
                             Attr.Code code)

addConstructor

public Member addConstructor(java.lang.String access,
                             java.lang.String desc,
                             java.lang.String[] exceptions,
                             Attr.Code code)

addConstructor

public Member addConstructor(int access,
                             java.lang.String desc,
                             java.lang.String[] exceptions,
                             Attr.Code code)

addStaticInit

public Member addStaticInit(Attr.Code code)

addAttr

public void addAttr(Attr attr)

toClass

public java.lang.Class toClass()

write

public void write(java.lang.String fname)
           throws java.io.IOException
Throws:
java.io.IOException

write

public void write(java.io.OutputStream os)
           throws java.io.IOException
Throws:
java.io.IOException

getCPString

public java.lang.String getCPString(int idx)

getCPClassName

public java.lang.String getCPClassName(int idx)

cpUtf8

public int cpUtf8(java.lang.String text)

cpInt

public int cpInt(int i)

cpLong

public int cpLong(long l)

cpFloat

public int cpFloat(float f)

cpDouble

public int cpDouble(double d)

cpString

public int cpString(java.lang.String text)

cpClass

public int cpClass(java.lang.String name)

cpNameAndType

public int cpNameAndType(java.lang.String name,
                         java.lang.String type)

cpFieldRef

public int cpFieldRef(java.lang.String className,
                      java.lang.String name,
                      java.lang.String type)

cpMethodRef

public int cpMethodRef(java.lang.String className,
                       java.lang.String name,
                       java.lang.String type)

cpInterfaceMethodRef

public int cpInterfaceMethodRef(java.lang.String className,
                                java.lang.String name,
                                java.lang.String type)

addDefaultCtor

public void addDefaultCtor()

helloWorld

public void helloWorld()