javassist.compiler
Class MemberCodeGen

java.lang.Object
  extended by javassist.compiler.ast.Visitor
      extended by javassist.compiler.CodeGen
          extended by javassist.compiler.MemberCodeGen
All Implemented Interfaces:
Opcode, TokenId
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
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, 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
MemberCodeGen(Bytecode b, CtClass cc, ClassPool cp)
           
 
Method Summary
 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(ASTList name)
           
protected  java.lang.String resolveClassName(java.lang.String jvmName)
           
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

resolver

protected MemberResolver resolver

thisClass

protected CtClass thisClass

thisMethod

protected MethodInfo thisMethod

resultStatic

protected boolean resultStatic
Constructor Detail

MemberCodeGen

public MemberCodeGen(Bytecode b,
                     CtClass cc,
                     ClassPool cp)
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 class CodeGen

getSuperName

protected java.lang.String getSuperName()
                                 throws CompileError
Returns the JVM-internal representation of this super class name.

Specified by:
getSuperName in class CodeGen
Throws:
CompileError

insertDefaultSuperCall

protected void insertDefaultSuperCall()
                               throws CompileError
Specified by:
insertDefaultSuperCall in class CodeGen
Throws:
CompileError

atTryStmnt

protected void atTryStmnt(Stmnt st)
                   throws CompileError
Overrides:
atTryStmnt in class CodeGen
Throws:
CompileError

atNewExpr

public void atNewExpr(NewExpr expr)
               throws CompileError
Specified by:
atNewExpr in class CodeGen
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 class CodeGen
Throws:
CompileError

atArrayInit

public void atArrayInit(ArrayInit init)
                 throws CompileError
Specified by:
atArrayInit in class CodeGen
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 class CodeGen
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 class CodeGen
Throws:
CompileError

atMember

public void atMember(Member mem)
              throws CompileError
Specified by:
atMember in class CodeGen
Throws:
CompileError

atFieldRead

protected void atFieldRead(ASTree expr)
                    throws CompileError
Specified by:
atFieldRead in class CodeGen
Throws:
CompileError

atClassObject2

protected void atClassObject2(java.lang.String cname)
                       throws CompileError
Overrides:
atClassObject2 in class CodeGen
Throws:
CompileError

atFieldPlusPlus

protected void atFieldPlusPlus(int token,
                               boolean isPost,
                               ASTree oprand,
                               Expr expr,
                               boolean doDup)
                        throws CompileError
Specified by:
atFieldPlusPlus in class CodeGen
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 class CodeGen
Throws:
CompileError

resolveClassName

protected java.lang.String resolveClassName(java.lang.String jvmName)
                                     throws CompileError
Specified by:
resolveClassName in class CodeGen
Throws:
CompileError


Copyright © 2011. All Rights Reserved.