Package javassist.expr
Class Expr
- java.lang.Object
-
- javassist.expr.Expr
-
- All Implemented Interfaces:
Opcode
- Direct Known Subclasses:
Cast
,FieldAccess
,Handler
,Instanceof
,MethodCall
,NewArray
,NewExpr
public abstract class Expr extends java.lang.Object implements Opcode
Expression.
-
-
Field Summary
Fields Modifier and Type Field 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
-
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, 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
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Expr(int pos, CodeIterator i, CtClass declaring, MethodInfo m)
Undocumented constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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 andExprEditor
.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.
-
-
-
Field Detail
-
currentPos
int currentPos
-
iterator
CodeIterator iterator
-
thisClass
CtClass thisClass
-
thisMethod
MethodInfo thisMethod
-
edited
boolean edited
-
maxLocals
int maxLocals
-
maxStack
int maxStack
-
javaLangObject
static final java.lang.String javaLangObject
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Expr
protected Expr(int pos, CodeIterator i, CtClass declaring, MethodInfo m)
Undocumented constructor. Do not use; internal-use only.
-
-
Method Detail
-
getEnclosingClass
public CtClass getEnclosingClass()
Returns the class that declares the method enclosing this expression.- Since:
- 3.7
-
getConstPool
protected final ConstPool getConstPool()
-
edited
protected final boolean edited()
-
locals
protected final int locals()
-
stack
protected final int stack()
-
withinStatic
protected final boolean withinStatic()
Returns true if this method is static.
-
where
public CtBehavior where()
Returns the constructor or method containing the expression.
-
mayThrow
public CtClass[] 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.
-
addClass
private static void addClass(java.util.LinkedList list, CtClass c)
-
indexOfBytecode
public int indexOfBytecode()
Returns the index of the bytecode corresponding to the expression. It is the index into the byte array containing the Java bytecode that implements the method.
-
getLineNumber
public int getLineNumber()
Returns the line number of the source line containing the expression.- Returns:
- -1 if this information is not available.
-
getFileName
public java.lang.String getFileName()
Returns the source file containing the expression.- Returns:
- null if this information is not available.
-
checkResultValue
static final boolean checkResultValue(CtClass retType, java.lang.String prog) throws CannotCompileException
- Throws:
CannotCompileException
-
storeStack
static final void storeStack(CtClass[] params, boolean isStaticCall, int regno, Bytecode bytecode)
-
storeStack0
private static void storeStack0(int i, int n, CtClass[] params, int regno, Bytecode bytecode)
-
replace
public abstract void replace(java.lang.String statement) throws CannotCompileException
Replaces this expression with the bytecode derived from the given source text.- Parameters:
statement
- a Java statement except try-catch.- Throws:
CannotCompileException
-
replace
public void replace(java.lang.String statement, ExprEditor recursive) throws CannotCompileException
Replaces this expression with the bytecode derived from the given source text andExprEditor
.- Parameters:
statement
- a Java statement except try-catch.recursive
- if not null, the substituted bytecode is recursively processed by the givenExprEditor
.- Throws:
CannotCompileException
- Since:
- 3.1
-
replace0
protected void replace0(int pos, Bytecode bytecode, int size) throws BadBytecode
- Throws:
BadBytecode
-
runEditor
protected void runEditor(ExprEditor ed, CodeIterator oldIterator) throws CannotCompileException
- Throws:
CannotCompileException
-
-