Class MemberCodeGen
- java.lang.Object
-
- org.hotswap.agent.javassist.compiler.ast.Visitor
-
- org.hotswap.agent.javassist.compiler.CodeGen
-
- org.hotswap.agent.javassist.compiler.MemberCodeGen
-
- Direct Known Subclasses:
JvstCodeGen
public class MemberCodeGen extends CodeGen
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.hotswap.agent.javassist.compiler.CodeGen
CodeGen.ReturnHook
-
-
Field Summary
Fields Modifier and Type Field Description protected MemberResolverresolverprotected booleanresultStaticprotected CtClassthisClassprotected MethodInfothisMethod-
Fields inherited from class org.hotswap.agent.javassist.compiler.CodeGen
arrayDim, breakList, bytecode, className, continueList, exprType, hasReturned, inStaticMethod, returnHooks
-
Fields inherited from interface org.hotswap.agent.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, 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, CHECKCAST, 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_DOUBLE, T_FLOAT, T_CHAR, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
-
Fields inherited from interface org.hotswap.agent.javassist.compiler.TokenId
ABSTRACT, AND_E, ANDAND, ARRAY, ARSHIFT, ARSHIFT_E, assignOps, BadToken, BLOCK, BOOLEAN, BREAK, BYTE, CALL, CASE, CATCH, CLASS, CONST, CONTINUE, DECL, DEFAULT, DIV_E, DO, DOUBLE, DoubleConstant, ELSE, EQ, EXOR_E, EXPR, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FloatConstant, FOR, GE, GOTO, CHAR, CharConstant, 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 voidatArrayInit(ArrayInit init)protected voidatArrayVariableAssign(ArrayInit init, int varType, int varArray, String varClass)voidatCallExpr(CallExpr expr)protected voidatClassObject2(String cname)protected voidatFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup)protected voidatFieldPlusPlus(int token, boolean isPost, ASTree oprand, Expr expr, boolean doDup)protected voidatFieldRead(ASTree expr)voidatMember(Member mem)voidatMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames)voidatMethodCallCore(CtClass targetClass, String mname, ASTList args, boolean isStatic, boolean isSpecial, int aload0pos, MemberResolver.Method found)protected voidatMultiNewArray(int type, ASTList classname, ASTList size)voidatNewArrayExpr(NewExpr expr)voidatNewExpr(NewExpr expr)protected voidatTryStmnt(Stmnt st)protected CtFieldfieldAccess(ASTree expr, boolean acceptLength)protected StringgetAccessibleConstructor(String desc, CtClass declClass, MethodInfo minfo)protected StringgetAccessiblePrivate(String methodName, String desc, String newDesc, MethodInfo minfo, CtClass declClass)intgetMajorVersion()Returns the major version of the class file targeted by this compilation.intgetMethodArgsLength(ASTList args)protected StringgetSuperName()Returns the JVM-internal representation of this super class name.CtClassgetThisClass()protected StringgetThisName()Returns the JVM-internal representation of this class name.protected voidinsertDefaultSuperCall()CtClass[]makeParamList(MethodDecl md)CtClass[]makeThrowsList(MethodDecl md)protected StringresolveClassName(String jvmName)protected StringresolveClassName(ASTList name)voidsetThisMethod(CtMethod m)Records the currently compiled method.-
Methods inherited from class org.hotswap.agent.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 String getThisName()
Returns the JVM-internal representation of this class name.- Specified by:
getThisNamein classCodeGen
-
getSuperName
protected String getSuperName() throws CompileError
Returns the JVM-internal representation of this super class name.- Specified by:
getSuperNamein classCodeGen- Throws:
CompileError
-
insertDefaultSuperCall
protected void insertDefaultSuperCall() throws CompileError- Specified by:
insertDefaultSuperCallin classCodeGen- Throws:
CompileError
-
atTryStmnt
protected void atTryStmnt(Stmnt st) throws CompileError
- Overrides:
atTryStmntin classCodeGen- Throws:
CompileError
-
atNewExpr
public void atNewExpr(NewExpr expr) throws CompileError
- Specified by:
atNewExprin classCodeGen- Throws:
CompileError
-
atNewArrayExpr
public void atNewArrayExpr(NewExpr expr) throws CompileError
- Throws:
CompileError
-
atArrayVariableAssign
protected void atArrayVariableAssign(ArrayInit init, int varType, int varArray, String varClass) throws CompileError
- Specified by:
atArrayVariableAssignin classCodeGen- Throws:
CompileError
-
atArrayInit
public void atArrayInit(ArrayInit init) throws CompileError
- Specified by:
atArrayInitin 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:
atCallExprin classCodeGen- Throws:
CompileError
-
atMethodCallCore
public void atMethodCallCore(CtClass targetClass, String mname, ASTList args, boolean isStatic, boolean isSpecial, int aload0pos, MemberResolver.Method found) throws CompileError
- Throws:
CompileError
-
getAccessiblePrivate
protected String getAccessiblePrivate(String methodName, String desc, String newDesc, MethodInfo minfo, CtClass declClass) throws CompileError
- Throws:
CompileError
-
getAccessibleConstructor
protected String getAccessibleConstructor(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, String[] cnames) throws CompileError
- Throws:
CompileError
-
atFieldAssign
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right, boolean doDup) throws CompileError
- Specified by:
atFieldAssignin classCodeGen- Throws:
CompileError
-
atMember
public void atMember(Member mem) throws CompileError
- Specified by:
atMemberin classCodeGen- Throws:
CompileError
-
atFieldRead
protected void atFieldRead(ASTree expr) throws CompileError
- Specified by:
atFieldReadin classCodeGen- Throws:
CompileError
-
atClassObject2
protected void atClassObject2(String cname) throws CompileError
- Overrides:
atClassObject2in classCodeGen- Throws:
CompileError
-
atFieldPlusPlus
protected void atFieldPlusPlus(int token, boolean isPost, ASTree oprand, Expr expr, boolean doDup) throws CompileError- Specified by:
atFieldPlusPlusin 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 String resolveClassName(ASTList name) throws CompileError
- Specified by:
resolveClassNamein classCodeGen- Throws:
CompileError
-
resolveClassName
protected String resolveClassName(String jvmName) throws CompileError
- Specified by:
resolveClassNamein classCodeGen- Throws:
CompileError
-
-