classUtils.javassist.expr
Class FieldAccess

java.lang.Object
  extended by classUtils.javassist.expr.Expr
      extended by classUtils.javassist.expr.FieldAccess
All Implemented Interfaces:
Opcode

public class FieldAccess
extends Expr

Expression for accessing a field.


Field Summary
 
Fields inherited from interface classUtils.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
 
Method Summary
 java.lang.String getClassName()
          Returns the name of the class in which the field is declared.
 CtField getField()
          Returns the field accessed by this expression.
 java.lang.String getFieldName()
          Returns the name of the field.
 java.lang.String getFileName()
          Returns the source file containing the field access.
 int getLineNumber()
          Returns the line number of the source line containing the field access.
 boolean isReader()
          Returns true if the field is read.
 boolean isStatic()
          Returns true if the field is static.
 boolean isWriter()
          Returns true if the field is written in.
 CompileTimeClass[] mayThrow()
          Returns the list of exceptions that the expression may throw.
 void replace(java.lang.String statement)
          Replaces the method call with the bytecode derived from the given source text.
 CtBehavior where()
          Returns the method or constructor containing the field-access expression represented by this object.
 
Methods inherited from class classUtils.javassist.expr.Expr
indexOfBytecode
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

where

public CtBehavior where()
Returns the method or constructor containing the field-access expression represented by this object.

Overrides:
where in class Expr

getLineNumber

public int getLineNumber()
Returns the line number of the source line containing the field access.

Overrides:
getLineNumber in class Expr
Returns:
-1 if this information is not available.

getFileName

public java.lang.String getFileName()
Returns the source file containing the field access.

Overrides:
getFileName in class Expr
Returns:
null if this information is not available.

isStatic

public boolean isStatic()
Returns true if the field is static.


isReader

public boolean isReader()
Returns true if the field is read.


isWriter

public boolean isWriter()
Returns true if the field is written in.


getClassName

public java.lang.String getClassName()
Returns the name of the class in which the field is declared.


getFieldName

public java.lang.String getFieldName()
Returns the name of the field.


getField

public CtField getField()
                 throws NotFoundException
Returns the field accessed by this expression.

Throws:
NotFoundException

mayThrow

public CompileTimeClass[] mayThrow()
Returns the list of exceptions that the expression may throw. This list includes both the exceptions that the try-catch statements including the expression can catch and the exceptions that the throws declaration allows the method to throw.

Overrides:
mayThrow in class Expr

replace

public void replace(java.lang.String statement)
             throws CannotCompileException
Replaces the method call with the bytecode derived from the given source text.

$0 is available even if the called method is static. If the field access is writing, $_ is available but the value of $_ is ignored.

Parameters:
statement - a Java statement.
Throws:
CannotCompileException