javassist.compiler
Class TypeChecker

java.lang.Object
  extended by javassist.compiler.ast.Visitor
      extended by javassist.compiler.TypeChecker
All Implemented Interfaces:
Opcode, TokenId
Direct Known Subclasses:
JvstTypeChecker

public class TypeChecker
extends Visitor
implements Opcode, TokenId


Field Summary
protected  int arrayDim
           
protected  java.lang.String className
           
protected  int exprType
           
protected  MemberResolver resolver
           
protected  CtClass thisClass
           
protected  MethodInfo thisMethod
           
 
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
TypeChecker(CtClass cc, ClassPool cp)
           
 
Method Summary
protected static java.lang.String argTypesToString(int[] types, int[] dims, java.lang.String[] cnames)
           
 void atArrayInit(ArrayInit init)
           
 void atArrayLength(Expr expr)
           
 void atArrayRead(ASTree array, ASTree index)
           
 void atAssignExpr(AssignExpr expr)
           
 void atBinExpr(BinExpr expr)
           
 void atCallExpr(CallExpr expr)
           
 void atCastExpr(CastExpr expr)
           
 void atClassObject(Expr expr)
           
 void atCondExpr(CondExpr expr)
           
 void atDoubleConst(DoubleConst d)
           
 void atExpr(Expr expr)
           
protected  void atFieldAssign(Expr expr, int op, ASTree left, ASTree right)
           
protected  void atFieldPlusPlus(ASTree oprand)
           
 void atInstanceOfExpr(InstanceOfExpr expr)
           
 void atIntConst(IntConst i)
           
 void atKeyword(Keyword k)
           
 void atMember(Member mem)
           
 void atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames)
           
 MemberResolver.Method atMethodCallCore(CtClass targetClass, java.lang.String mname, ASTList args)
           
protected  void atMultiNewArray(int type, ASTList classname, ASTList size)
           
 void atNewArrayExpr(NewExpr expr)
           
 void atNewExpr(NewExpr expr)
           
 void atStringL(StringL s)
           
 void atVariable(Variable v)
           
protected static void fatal()
           
protected  CtField fieldAccess(ASTree expr)
           
static ASTree getConstantFieldValue(CtField f)
           
 int getMethodArgsLength(ASTList args)
           
protected  java.lang.String getSuperName()
          Returns the JVM-internal representation of this super class name.
protected  java.lang.String getThisName()
          Returns the JVM-internal representation of this class name.
protected  java.lang.String resolveClassName(ASTList name)
           
protected  java.lang.String resolveClassName(java.lang.String jvmName)
           
 void setThisMethod(MethodInfo m)
          Records the currently compiled method.
protected static java.lang.StringBuffer typeToString(java.lang.StringBuffer sbuf, int type, int dim, java.lang.String cname)
           
 
Methods inherited from class javassist.compiler.ast.Visitor
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

exprType

protected int exprType

arrayDim

protected int arrayDim

className

protected java.lang.String className

resolver

protected MemberResolver resolver

thisClass

protected CtClass thisClass

thisMethod

protected MethodInfo thisMethod
Constructor Detail

TypeChecker

public TypeChecker(CtClass cc,
                   ClassPool cp)
Method Detail

argTypesToString

protected static java.lang.String argTypesToString(int[] types,
                                                   int[] dims,
                                                   java.lang.String[] cnames)

typeToString

protected static java.lang.StringBuffer typeToString(java.lang.StringBuffer sbuf,
                                                     int type,
                                                     int dim,
                                                     java.lang.String cname)

setThisMethod

public void setThisMethod(MethodInfo m)
Records the currently compiled method.


fatal

protected static void fatal()
                     throws CompileError
Throws:
CompileError

getThisName

protected java.lang.String getThisName()
Returns the JVM-internal representation of this class name.


getSuperName

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

Throws:
CompileError

resolveClassName

protected java.lang.String resolveClassName(ASTList name)
                                     throws CompileError
Throws:
CompileError

resolveClassName

protected java.lang.String resolveClassName(java.lang.String jvmName)
                                     throws CompileError
Throws:
CompileError

atNewExpr

public void atNewExpr(NewExpr expr)
               throws CompileError
Overrides:
atNewExpr in class Visitor
Throws:
CompileError

atNewArrayExpr

public void atNewArrayExpr(NewExpr expr)
                    throws CompileError
Throws:
CompileError

atArrayInit

public void atArrayInit(ArrayInit init)
                 throws CompileError
Overrides:
atArrayInit in class Visitor
Throws:
CompileError

atMultiNewArray

protected void atMultiNewArray(int type,
                               ASTList classname,
                               ASTList size)
                        throws CompileError
Throws:
CompileError

atAssignExpr

public void atAssignExpr(AssignExpr expr)
                  throws CompileError
Overrides:
atAssignExpr in class Visitor
Throws:
CompileError

atFieldAssign

protected void atFieldAssign(Expr expr,
                             int op,
                             ASTree left,
                             ASTree right)
                      throws CompileError
Throws:
CompileError

atCondExpr

public void atCondExpr(CondExpr expr)
                throws CompileError
Overrides:
atCondExpr in class Visitor
Throws:
CompileError

atBinExpr

public void atBinExpr(BinExpr expr)
               throws CompileError
Overrides:
atBinExpr in class Visitor
Throws:
CompileError

getConstantFieldValue

public static ASTree getConstantFieldValue(CtField f)

atCastExpr

public void atCastExpr(CastExpr expr)
                throws CompileError
Overrides:
atCastExpr in class Visitor
Throws:
CompileError

atInstanceOfExpr

public void atInstanceOfExpr(InstanceOfExpr expr)
                      throws CompileError
Overrides:
atInstanceOfExpr in class Visitor
Throws:
CompileError

atExpr

public void atExpr(Expr expr)
            throws CompileError
Overrides:
atExpr in class Visitor
Throws:
CompileError

atCallExpr

public void atCallExpr(CallExpr expr)
                throws CompileError
Overrides:
atCallExpr in class Visitor
Throws:
CompileError

atMethodCallCore

public MemberResolver.Method atMethodCallCore(CtClass targetClass,
                                              java.lang.String mname,
                                              ASTList args)
                                       throws CompileError
Returns:
a pair of the class declaring the invoked method and the MethodInfo of that method. Never null.
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

fieldAccess

protected CtField fieldAccess(ASTree expr)
                       throws CompileError
Throws:
CompileError

atClassObject

public void atClassObject(Expr expr)
                   throws CompileError
Throws:
CompileError

atArrayLength

public void atArrayLength(Expr expr)
                   throws CompileError
Throws:
CompileError

atArrayRead

public void atArrayRead(ASTree array,
                        ASTree index)
                 throws CompileError
Throws:
CompileError

atFieldPlusPlus

protected void atFieldPlusPlus(ASTree oprand)
                        throws CompileError
Throws:
CompileError

atMember

public void atMember(Member mem)
              throws CompileError
Overrides:
atMember in class Visitor
Throws:
CompileError

atVariable

public void atVariable(Variable v)
                throws CompileError
Overrides:
atVariable in class Visitor
Throws:
CompileError

atKeyword

public void atKeyword(Keyword k)
               throws CompileError
Overrides:
atKeyword in class Visitor
Throws:
CompileError

atStringL

public void atStringL(StringL s)
               throws CompileError
Overrides:
atStringL in class Visitor
Throws:
CompileError

atIntConst

public void atIntConst(IntConst i)
                throws CompileError
Overrides:
atIntConst in class Visitor
Throws:
CompileError

atDoubleConst

public void atDoubleConst(DoubleConst d)
                   throws CompileError
Overrides:
atDoubleConst in class Visitor
Throws:
CompileError


Copyright © 2011. All Rights Reserved.