public class ClassEnv extends Object implements RuntimeConstants
ACC_ABSTRACT, ACC_ANNOTATION, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICTFP, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_INVOKE_DYNAMIC, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_METHOD_HANDLE, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, JAVA_MAGIC, JAVA1_2_MINOR_VERSION, JAVA1_2_VERSION, JAVA1_4_HIGH_VERSION, JAVA1_4_MINOR_HIGH_VERSION, JAVA5_HIGH_VERSION, JAVA5_MINOR_HIGH_VERSION, JAVA6_HIGH_VERSION, JAVA6_MINOR_HIGH_VERSION, JAVA7_HIGH_VERSION, JAVA7_MINOR_HIGH_VERSION, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dead, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_int2byte, opc_int2char, opc_int2short, opc_invokedynamic, opc_invokeinterface, opc_invokenonvirtual, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_label, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_try, opc_wide, opcLengths, opcNames, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT| Constructor and Description |
|---|
ClassEnv() |
| Modifier and Type | Method and Description |
|---|---|
int |
addBootstrapMethod(MethodHandleCP bsm,
CP[] argCPs) |
void |
addCPItem(CP cp)
This is the method to add CPE items to a class.
|
void |
addEnclMethAttr(EnclMethAttr attr) |
void |
addField(Var v) |
void |
addGenericAttr(GenericAttr g)
Add a generic attribute to the class file.
|
void |
addInterface(CP ifc)
Add this CP to the list of interfaces supposedly implemented by
this class.
|
void |
addInterface(CP[] ilist)
Add this to the list of interfaces supposedly implemented
by this class.
|
void |
addMethod(Method m)
This allows more control over generating CP's for methods
if you feel so inclined.
|
void |
addMethod(short acc,
String name,
String sig,
CodeAttr code,
ExceptAttr ex)
Here is where code gets added to a class.
|
void |
finishInnerClassAttr(InnerClassAttr attr) |
boolean |
isClassSynth() |
void |
requireJava1_4() |
void |
requireJava5() |
void |
requireJava6() |
void |
requireJava7() |
void |
setClass(CP name)
Define this class to have this name.
|
void |
setClassAccess(short access)
Set the class access for this class.
|
void |
setClassAnnotAttrInvis(VisibilityAnnotationAttr s) |
void |
setClassAnnotAttrVis(VisibilityAnnotationAttr s) |
void |
setClassDepr(DeprecatedAttr d) |
void |
setClassSigAttr(SignatureAttr s) |
void |
setClassSynth(boolean b) |
void |
setNoSuperClass()
Define this class to have no superclass.
|
void |
setSource(SourceAttr source)
Add an attribute specifying the name of the source file
for the class
|
void |
setSource(String source)
Add an attribute specifying the name of the source file
for the clas.
|
void |
setSuperClass(CP name)
Define this class to have this superclass
|
void |
write(DataOutputStream out)
Write the contents of the class.
|
public void requireJava1_4()
public void requireJava5()
public void requireJava6()
public void requireJava7()
public void setClass(CP name)
name - CPE representing name for class. (This is usually
a ClassCP)public void setNoSuperClass()
public void setSuperClass(CP name)
name - CPE representing name for class. (This is usually
a ClassCP)public void setClassAccess(short access)
access - number representing access permissions for
the entire class.RuntimeConstantspublic void addInterface(CP ifc)
public void addInterface(CP[] ilist)
ilist - An array of CP items representing the
interfaces implemented by this class.public void addField(Var v)
public void write(DataOutputStream out) throws IOException, jasError
out - DataOutputStream on which the contents are written.IOExceptionjasErrorpublic void addCPItem(CP cp)
cp - Item to be added to the classpublic void addMethod(short acc,
String name,
String sig,
CodeAttr code,
ExceptAttr ex)
acc - method_access permissions, expressed with some combination
of the values defined in RuntimeConstantsname - Name of the methodsig - Signature for the methodcode - Actual code for the methodex - Any exception attribute to be associated with methodpublic void setClassSynth(boolean b)
public boolean isClassSynth()
public void setClassDepr(DeprecatedAttr d)
public void setClassSigAttr(SignatureAttr s)
public void setClassAnnotAttrVis(VisibilityAnnotationAttr s)
public void setClassAnnotAttrInvis(VisibilityAnnotationAttr s)
public void finishInnerClassAttr(InnerClassAttr attr)
public void addEnclMethAttr(EnclMethAttr attr)
public void setSource(SourceAttr source)
source - SourceAttribute specifying the source for the filepublic void setSource(String source)
source - String with the name of the classpublic void addGenericAttr(GenericAttr g)
public void addMethod(Method m)
public int addBootstrapMethod(MethodHandleCP bsm, CP[] argCPs)
Copyright © 2019 Sable. All rights reserved.