public abstract class Expr extends java.lang.Object implements Opcode
Modifier and Type | Field and Description |
---|---|
(package private) int |
currentPos |
(package private) boolean |
edited |
(package private) CodeIterator |
iterator |
(package private) static java.lang.String |
javaLangObject |
(package private) int |
maxLocals |
(package private) int |
maxStack |
(package private) CtClass |
thisClass |
(package private) MethodInfo |
thisMethod |
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
Modifier | Constructor and Description |
---|---|
protected |
Expr(int pos,
CodeIterator i,
CtClass declaring,
MethodInfo m)
Undocumented constructor.
|
Modifier and Type | Method and Description |
---|---|
private static void |
addClass(java.util.LinkedList list,
CtClass c) |
(package private) static boolean |
checkResultValue(CtClass retType,
java.lang.String prog) |
protected boolean |
edited() |
protected ConstPool |
getConstPool() |
CtClass |
getEnclosingClass()
Returns the class that declares the method enclosing
this expression.
|
java.lang.String |
getFileName()
Returns the source file containing the expression.
|
int |
getLineNumber()
Returns the line number of the source line containing the expression.
|
int |
indexOfBytecode()
Returns the index of the bytecode corresponding to the expression.
|
protected int |
locals() |
CtClass[] |
mayThrow()
Returns the list of exceptions that the expression may throw.
|
abstract void |
replace(java.lang.String statement)
Replaces this expression with the bytecode derived from
the given source text.
|
void |
replace(java.lang.String statement,
ExprEditor recursive)
Replaces this expression with the bytecode derived from
the given source text and
ExprEditor . |
protected void |
replace0(int pos,
Bytecode bytecode,
int size) |
protected void |
runEditor(ExprEditor ed,
CodeIterator oldIterator) |
protected int |
stack() |
(package private) static void |
storeStack(CtClass[] params,
boolean isStaticCall,
int regno,
Bytecode bytecode) |
private static void |
storeStack0(int i,
int n,
CtClass[] params,
int regno,
Bytecode bytecode) |
CtBehavior |
where()
Returns the constructor or method containing the expression.
|
protected boolean |
withinStatic()
Returns true if this method is static.
|
int currentPos
CodeIterator iterator
CtClass thisClass
MethodInfo thisMethod
boolean edited
int maxLocals
int maxStack
static final java.lang.String javaLangObject
protected Expr(int pos, CodeIterator i, CtClass declaring, MethodInfo m)
public CtClass getEnclosingClass()
protected final ConstPool getConstPool()
protected final boolean edited()
protected final int locals()
protected final int stack()
protected final boolean withinStatic()
public CtBehavior where()
public CtClass[] mayThrow()
private static void addClass(java.util.LinkedList list, CtClass c)
public int indexOfBytecode()
public int getLineNumber()
public java.lang.String getFileName()
static final boolean checkResultValue(CtClass retType, java.lang.String prog) throws CannotCompileException
CannotCompileException
static final void storeStack(CtClass[] params, boolean isStaticCall, int regno, Bytecode bytecode)
private static void storeStack0(int i, int n, CtClass[] params, int regno, Bytecode bytecode)
public abstract void replace(java.lang.String statement) throws CannotCompileException
statement
- a Java statement except try-catch.CannotCompileException
public void replace(java.lang.String statement, ExprEditor recursive) throws CannotCompileException
ExprEditor
.statement
- a Java statement except try-catch.recursive
- if not null, the substituted bytecode
is recursively processed by the given
ExprEditor
.CannotCompileException
protected void replace0(int pos, Bytecode bytecode, int size) throws BadBytecode
BadBytecode
protected void runEditor(ExprEditor ed, CodeIterator oldIterator) throws CannotCompileException
CannotCompileException