Package javassist.compiler
Class MemberCodeGen
- java.lang.Object
-
- javassist.compiler.ast.Visitor
-
- javassist.compiler.CodeGen
-
- javassist.compiler.MemberCodeGen
-
- Direct Known Subclasses:
JvstCodeGen
public class MemberCodeGen extends CodeGen
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javassist.compiler.CodeGen
CodeGen.ReturnHook
-
-
Field Summary
Fields Modifier and Type Field Description protected MemberResolver
resolver
protected boolean
resultStatic
protected CtClass
thisClass
protected MethodInfo
thisMethod
-
Fields inherited from class javassist.compiler.CodeGen
arrayDim, breakList, bytecode, className, continueList, exprType, hasReturned, inStaticMethod, returnHooks
-
Fields inherited from interface javassist.bytecode.Opcode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
-
Fields inherited from interface javassist.compiler.TokenId
ABSTRACT, AND_E, ANDAND, ARRAY, ARSHIFT, ARSHIFT_E, assignOps, BadToken, BLOCK, BOOLEAN, BREAK, BYTE, CALL, CASE, CATCH, CHAR, CharConstant, CLASS, CONST, CONTINUE, DECL, DEFAULT, DIV_E, DO, DOUBLE, DoubleConstant, ELSE, EQ, EXOR_E, EXPR, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FloatConstant, FOR, GE, GOTO, Identifier, IF, IMPLEMENTS, IMPORT, INSTANCEOF, INT, IntConstant, INTERFACE, LABEL, LE, LONG, LongConstant, LSHIFT, LSHIFT_E, MEMBER, MINUS_E, MINUSMINUS, MOD_E, MUL_E, NATIVE, NEQ, NEW, NULL, opNames, OR_E, OROR, PACKAGE, PLUS_E, PLUSPLUS, PRIVATE, PROTECTED, PUBLIC, RETURN, RSHIFT, RSHIFT_E, SHORT, STATIC, STRICT, StringL, SUPER, SWITCH, SYNCHRONIZED, THIS, THROW, THROWS, TRANSIENT, TRUE, TRY, VOID, VOLATILE, WHILE
-
-
Constructor Summary
Constructors Constructor Description MemberCodeGen(Bytecode b, CtClass cc, ClassPool cp)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
atArrayInit(ArrayInit init)
protected void
atArrayVariableAssign(ArrayInit init, int varType, int varArray, java.lang.String varClass)
void
atCallExpr(CallExpr expr)
protected void
atClassObject2(java.lang.String cname)
protected void
atFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup)
protected void
atFieldPlusPlus(int token, boolean isPost, ASTree oprand, Expr expr, boolean doDup)
protected void
atFieldRead(ASTree expr)
void
atMember(Member mem)
void
atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames)
void
atMethodCallCore(CtClass targetClass, java.lang.String mname, ASTList args, boolean isStatic, boolean isSpecial, int aload0pos, MemberResolver.Method found)
protected void
atMultiNewArray(int type, ASTList classname, ASTList size)
void
atNewArrayExpr(NewExpr expr)
void
atNewExpr(NewExpr expr)
protected void
atTryStmnt(Stmnt st)
protected CtField
fieldAccess(ASTree expr, boolean acceptLength)
protected java.lang.String
getAccessibleConstructor(java.lang.String desc, CtClass declClass, MethodInfo minfo)
protected java.lang.String
getAccessiblePrivate(java.lang.String methodName, java.lang.String desc, java.lang.String newDesc, MethodInfo minfo, CtClass declClass)
int
getMajorVersion()
Returns the major version of the class file targeted by this compilation.int
getMethodArgsLength(ASTList args)
protected java.lang.String
getSuperName()
Returns the JVM-internal representation of this super class name.CtClass
getThisClass()
protected java.lang.String
getThisName()
Returns the JVM-internal representation of this class name.protected void
insertDefaultSuperCall()
CtClass[]
makeParamList(MethodDecl md)
CtClass[]
makeThrowsList(MethodDecl md)
protected java.lang.String
resolveClassName(java.lang.String jvmName)
protected java.lang.String
resolveClassName(ASTList name)
void
setThisMethod(CtMethod m)
Records the currently compiled method.-
Methods inherited from class javassist.compiler.CodeGen
arrayAccess, atArrayPlusPlus, atArrayRead, atAssignCore, atAssignExpr, atAssignExpr, atASTList, atBinExpr, atCastExpr, atClassObject, atCondExpr, atDeclarator, atDoubleConst, atExpr, atFieldDecl, atInstanceOfExpr, atIntConst, atKeyword, atMethodBody, atMethodDecl, atPair, atPlusPlusCore, atReturnStmnt, atReturnStmnt2, atStmnt, atStringL, atSymbol, atVariable, badAssign, badType, badTypes, compileBooleanExpr, compileExpr, doTypeCheck, fatal, getArrayReadOp, getArrayWriteOp, getLocalVar, getMaxLocals, getTempVar, incMaxLocals, is2word, isRefType, patchGoto, setMaxLocals, setTypeChecker, toJvmArrayName, toJvmTypeName
-
-
-
-
Field Detail
-
resolver
protected MemberResolver resolver
-
thisClass
protected CtClass thisClass
-
thisMethod
protected MethodInfo thisMethod
-
resultStatic
protected boolean resultStatic
-
-
Method Detail
-
getMajorVersion
public int getMajorVersion()
Returns the major version of the class file targeted by this compilation.
-
setThisMethod
public void setThisMethod(CtMethod m)
Records the currently compiled method.
-
getThisClass
public CtClass getThisClass()
-
getThisName
protected java.lang.String getThisName()
Returns the JVM-internal representation of this class name.- Specified by:
getThisName
in classCodeGen
-
getSuperName
protected java.lang.String getSuperName() throws CompileError
Returns the JVM-internal representation of this super class name.- Specified by:
getSuperName
in classCodeGen
- Throws:
CompileError
-
insertDefaultSuperCall
protected void insertDefaultSuperCall() throws CompileError
- Specified by:
insertDefaultSuperCall
in classCodeGen
- Throws:
CompileError
-
atTryStmnt
protected void atTryStmnt(Stmnt st) throws CompileError
- Overrides:
atTryStmnt
in classCodeGen
- Throws:
CompileError
-
atNewExpr
public void atNewExpr(NewExpr expr) throws CompileError
- Specified by:
atNewExpr
in classCodeGen
- Throws:
CompileError
-
atNewArrayExpr
public void atNewArrayExpr(NewExpr expr) throws CompileError
- Throws:
CompileError
-
atArrayVariableAssign
protected void atArrayVariableAssign(ArrayInit init, int varType, int varArray, java.lang.String varClass) throws CompileError
- Specified by:
atArrayVariableAssign
in classCodeGen
- Throws:
CompileError
-
atArrayInit
public void atArrayInit(ArrayInit init) throws CompileError
- Specified by:
atArrayInit
in classCodeGen
- Throws:
CompileError
-
atMultiNewArray
protected void atMultiNewArray(int type, ASTList classname, ASTList size) throws CompileError
- Throws:
CompileError
-
atCallExpr
public void atCallExpr(CallExpr expr) throws CompileError
- Specified by:
atCallExpr
in classCodeGen
- Throws:
CompileError
-
atMethodCallCore
public void atMethodCallCore(CtClass targetClass, java.lang.String mname, ASTList args, boolean isStatic, boolean isSpecial, int aload0pos, MemberResolver.Method found) throws CompileError
- Throws:
CompileError
-
getAccessiblePrivate
protected java.lang.String getAccessiblePrivate(java.lang.String methodName, java.lang.String desc, java.lang.String newDesc, MethodInfo minfo, CtClass declClass) throws CompileError
- Throws:
CompileError
-
getAccessibleConstructor
protected java.lang.String getAccessibleConstructor(java.lang.String desc, CtClass declClass, MethodInfo minfo) throws CompileError
- Throws:
CompileError
-
getMethodArgsLength
public int getMethodArgsLength(ASTList args)
-
atMethodArgs
public void atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames) throws CompileError
- Throws:
CompileError
-
atFieldAssign
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup) throws CompileError
- Specified by:
atFieldAssign
in classCodeGen
- Throws:
CompileError
-
atMember
public void atMember(Member mem) throws CompileError
- Specified by:
atMember
in classCodeGen
- Throws:
CompileError
-
atFieldRead
protected void atFieldRead(ASTree expr) throws CompileError
- Specified by:
atFieldRead
in classCodeGen
- Throws:
CompileError
-
atClassObject2
protected void atClassObject2(java.lang.String cname) throws CompileError
- Overrides:
atClassObject2
in classCodeGen
- Throws:
CompileError
-
atFieldPlusPlus
protected void atFieldPlusPlus(int token, boolean isPost, ASTree oprand, Expr expr, boolean doDup) throws CompileError
- Specified by:
atFieldPlusPlus
in classCodeGen
- Throws:
CompileError
-
fieldAccess
protected CtField fieldAccess(ASTree expr, boolean acceptLength) throws CompileError
- Throws:
CompileError
-
makeParamList
public CtClass[] makeParamList(MethodDecl md) throws CompileError
- Throws:
CompileError
-
makeThrowsList
public CtClass[] makeThrowsList(MethodDecl md) throws CompileError
- Throws:
CompileError
-
resolveClassName
protected java.lang.String resolveClassName(ASTList name) throws CompileError
- Specified by:
resolveClassName
in classCodeGen
- Throws:
CompileError
-
resolveClassName
protected java.lang.String resolveClassName(java.lang.String jvmName) throws CompileError
- Specified by:
resolveClassName
in classCodeGen
- Throws:
CompileError
-
-