|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectcn.wensiqun.asmsupport.definition.AbstractExecuteable
cn.wensiqun.asmsupport.block.ProgramBlock
public abstract class ProgramBlock
| 字段摘要 | |
|---|---|
protected InstructionHelper |
insnHelper
|
protected Method |
method
|
protected ProgramBlock |
ownerBlock
属于哪个block。 |
protected boolean |
returned
当前block是否已经返回 或者已经抛出异常了 |
protected Scope |
scope
|
| 构造方法摘要 | |
|---|---|
protected |
ProgramBlock()
create a logic program block |
| 方法摘要 | |
|---|---|
Addition |
add(Parameterized factor1,
Parameterized factor2)
generate the instruction that correspond to factor1 + factor2 |
void |
addAllExe(int index,
List<Executeable> exes)
|
void |
addException(AClass exception)
添加抛出的异常到方法签名中 |
void |
addExe(Executeable exe)
添加一个Executeable |
AfterDecrement |
afterDec(Crementable crement)
i-- |
AfterIncrement |
afterInc(Crementable crement)
i++ |
Parameterized |
append(Parameterized par1,
Parameterized... pars)
|
ArrayLength |
arrayLength(ArrayLoader arrayReference,
Parameterized... dims)
|
ArrayLength |
arrayLength(ArrayValue arrayReference,
Parameterized... dims)
|
ArrayLength |
arrayLength(Assigner arrayReference,
Parameterized... dims)
|
ArrayLength |
arrayLength(IVariable arrayReference,
Parameterized... dims)
get length of array java code: i[1].length note: i is int[][]{{1},{2}} asmsupport code: arrayLength(i, getValue(1)) |
ArrayLength |
arrayLength(MethodInvoker arrayReference,
Parameterized... dims)
|
ArrayLoader |
arrayLoad(ArrayLoader arrayReference,
Parameterized pardim,
Parameterized... parDims)
|
ArrayLoader |
arrayLoad(ArrayValue arrayReference,
Parameterized pardim,
Parameterized... parDims)
|
ArrayLoader |
arrayLoad(Assigner arrayReference,
Parameterized pardim,
Parameterized... parDims)
|
ArrayLoader |
arrayLoad(IVariable arrayReference,
Parameterized pardim,
Parameterized... parDims)
get value from array according to index java code: i[1][2]; asmsupport code: arrayLoad(i, getValue(1), getValue(2)) |
ArrayLoader |
arrayLoad(MethodInvoker arrayReference,
Parameterized pardim,
Parameterized... parDims)
|
ArrayStorer |
arrayStore(ArrayLoader arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
|
ArrayStorer |
arrayStore(ArrayValue arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
|
ArrayStorer |
arrayStore(Assigner arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
|
ArrayStorer |
arrayStore(IVariable arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
set value from array according to index java code: i[1][2] = 10; asmsupport code: arrayStore(i, getValue(10), getValue(1), getValue(2)) |
ArrayStorer |
arrayStore(MethodInvoker arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
|
Assigner |
assign(MemberVariable mv,
Parameterized val)
assign a value to a variable. for exampel: java code: i = 10; asmsupport code: assign(i, getValue(10)); |
BeforeDecrement |
beforeDec(Crementable crement)
--i |
BeforeIncrement |
beforeInc(Crementable crement)
++i |
BitAnd |
bitAnd(Parameterized factor1,
Parameterized factor2)
factor1 & factor2 |
BitOr |
bitOr(Parameterized factor1,
Parameterized factor2)
factor1 | factor2 |
BitXor |
bitXor(Parameterized factor1,
Parameterized factor2)
factor1 ^ factor2 |
void |
breakout()
|
CheckCast |
checkCast(Parameterized cc,
AClass to)
checkcast a value to target type. |
void |
clonerGenerate(ProgramBlock cloneTo)
克隆当前的程序块的执行队列到给定程序块执行队列中 |
ShortCircuitAnd |
conditionalAnd(Parameterized factor1,
Parameterized factor2)
factor1 && factor2 |
ShortCircuitOr |
conditionalOr(Parameterized factor1,
Parameterized factor2)
factor1 || factor2 |
void |
continueout()
|
LocalVariable |
createArrayVariable(String name,
ArrayClass aClass,
boolean anonymous,
Object parameterizedArray)
|
LocalVariable |
createArrayVariable(String name,
ArrayClass aClass,
boolean anonymous,
Parameterized value)
|
LocalVariable |
createArrayVariableWithAllocateDimension(String name,
ArrayClass aClass,
boolean anonymous,
Parameterized... allocateDim)
创建数组变量,可分配数组空间大小 createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, null) --> String[][] array = null; createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, Value.value(3)) --> String[][] array = new String[3][]; createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, Value.value(3), Value.value(2)) --> String[][] array = new String[3][2]; |
LocalVariable |
createVariable(String name,
AClass aClass,
boolean anonymous,
Parameterized para)
create a local variable |
Division |
div(Parameterized factor1,
Parameterized factor2)
generate the instruction that correspond to factor1 / factor2 |
WhileLoop |
dowhile(DoWhileLoop dwl)
|
Equal |
equal(Parameterized factor1,
Parameterized factor2)
|
boolean |
equals(Object obj)
|
void |
execute()
执行 |
abstract void |
executing()
|
ForEachLoop |
forEach(ForEachLoop forEach)
|
abstract void |
generateInsn()
override this method if want create a new block 生成操作到执行队列中去。 |
ProgramBlock |
getCopy()
获取当前程序块的克隆拷贝 |
protected ProgramBlock |
getExecuteBlock()
|
List<Executeable> |
getExecuteQueue()
|
InstructionHelper |
getInsnHelper()
|
protected LocalVariable |
getLocalAnonymousVariableModel(AClass aClass)
|
protected LocalVariable |
getLocalVariableModel(String name,
AClass aClass)
|
Method |
getMethod()
|
LocalVariable[] |
getMethodArguments()
|
protected SuperMethodBody |
getMethodBody()
|
NewMemberClass |
getMethodOwner()
get current method owner. |
ProgramBlock |
getOwnerBlock()
|
List<Executeable> |
getPreExecuteInsn()
|
Scope |
getScope()
|
SuperVariable |
getSuper()
get "super". like use super key word in java |
ThisVariable |
getThis()
get "this". like use this key word in java |
ThrowExceptionContainer |
getThrowExceptions()
|
GreaterEqual |
greaterEqual(Parameterized factor1,
Parameterized factor2)
|
GreaterThan |
greaterThan(Parameterized factor1,
Parameterized factor2)
|
IF |
ifthan(IF ifs)
|
protected abstract void |
init()
|
Parameterized |
instanceOf(Parameterized obj,
AClass type)
|
Inverts |
inverts(Parameterized factor)
|
MethodInvoker |
invoke(Parameterized caller,
String methodName,
Parameterized... arguments)
invoke a method by other method invoker, for example: java code: "String".getClass().toString(); asmsupport code: MethodInvoker getClass = invoke(Value.value("String"), "getClass()"); invoke(getClass, "toString"); |
MethodInvoker |
invokeConstructor(AClass owner,
Parameterized... arguments)
|
MethodInvoker |
invokeOriginalMethod()
invoke by proxy method |
MethodInvoker |
invokeStatic(AClass owner,
String methodName,
Parameterized... arguments)
|
protected void |
invokeVerify(AClass a)
|
boolean |
isReturned()
|
boolean |
isUnreachableCode(AbstractOperator currentOperator)
|
LeftShift |
leftShift(Parameterized factor1,
Parameterized factor2)
factor1 << factor2 |
LessEqual |
lessEqual(Parameterized factor1,
Parameterized factor2)
|
LessThan |
lessThan(Parameterized factor1,
Parameterized factor2)
|
LogicalAnd |
logicalAnd(Parameterized factor1,
Parameterized factor2)
factor1 & factor2 |
LogicalOr |
logicalOr(Parameterized factor1,
Parameterized factor2)
factor1 | factor2 |
LogicalXor |
logicalXor(Parameterized factor1,
Parameterized factor2)
factor1 ^ factor2 |
Modulus |
mod(Parameterized factor1,
Parameterized factor2)
|
Multiplication |
mul(Parameterized factor1,
Parameterized factor2)
generate the instruction that correspond to factor1 * factor2 |
Negative |
neg(Parameterized factor)
|
ArrayValue |
newArray(ArrayClass aClass,
Parameterized... allocateDims)
|
ArrayValue |
newArrayWithValue(ArrayClass aClass,
Object arrayObject)
create a unknow dim array |
ArrayValue |
newArrayWithValue(ArrayClass aClass,
Parameterized[] values)
execute new array operator, cannot support more than 4 dim array, becuase we not need more than 4 dim array in really business service for example: java code: new int[]{2} asmsupport code: newArray(AClassGetter.getArrayClass(int[].class), new Parameterized[]{getValue(1)}); |
ArrayValue |
newArrayWithValue(ArrayClass aClass,
Parameterized[][] values)
create a two dim array |
ArrayValue |
newArrayWithValue(ArrayClass aClass,
Parameterized[][][] values)
create a three dim array |
ArrayValue |
newArrayWithValue(ArrayClass aClass,
Parameterized[][][][] values)
create a four dim array |
Not |
not(Parameterized factor)
! |
NotEqual |
notEqual(Parameterized factor1,
Parameterized factor2)
|
void |
prepare()
执行execute的预先操作 在此方法中如果要对执行队列操作 那么不能对执行队列做删除和添加操作 只能做替操作 除了MethodBody类型的Block是通过直接调用的方式执行Prepare方法之外, 其他Block 均在调用创建该Block的时候触发Prepare方法, 所有创建非MethodBody类型Block都在 jw.asmsupport.block.operator.CreateBlockOperator接口中 对于一般的Block,比如if...else... |
void |
removeException(AClass exception)
|
void |
removeExe(Executeable exe)
|
void |
replaceExe(Executeable old,
Executeable newp)
替换 |
RightShift |
rightShift(Parameterized factor1,
Parameterized factor2)
factor1 >> factor2 |
Return |
runReturn()
run return statement |
Return |
runReturn(Parameterized parame)
run return statement with return value |
void |
setExecuteBlock(ProgramBlock exeBlock)
|
void |
setInsnHelper(InstructionHelper insnHelper)
|
void |
setOwnerBlock(ProgramBlock block)
|
void |
setReturned(boolean returned)
|
void |
setScope(Scope scope)
|
void |
setWhetherCheckUnreachableCode(boolean whetherCheckUnreachableCode)
|
Subtraction |
sub(Parameterized factor1,
Parameterized factor2)
generate the instruction that correspond to factor1 - factor2 |
protected void |
subBlockPrepare(ProgramBlock pb)
|
protected void |
subBlockPrepare(ProgramBlock pb,
ProgramBlock parentBlock)
通常情况下的prepare |
Synchronized |
syn(Synchronized s)
|
TernaryOperator |
ternary(Parameterized exp1,
Parameterized exp2,
Parameterized exp3)
|
void |
throwException(Parameterized exception)
|
void |
tiggerTryCatchPrepare()
|
Try |
tryDo(Try t)
|
UnsignedRightShift |
unsignedRightShift(Parameterized factor1,
Parameterized factor2)
factor1 >>> factor2 |
boolean |
whetherCheckUnreachableCode()
|
WhileLoop |
whileloop(WhileLoop wl)
|
| 从类 java.lang.Object 继承的方法 |
|---|
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 字段详细信息 |
|---|
protected Scope scope
protected ProgramBlock ownerBlock
protected InstructionHelper insnHelper
protected Method method
protected boolean returned
| 构造方法详细信息 |
|---|
protected ProgramBlock()
mv - scope - parent - | 方法详细信息 |
|---|
public void setExecuteBlock(ProgramBlock exeBlock)
protected ProgramBlock getExecuteBlock()
public ThrowExceptionContainer getThrowExceptions()
public void addException(AClass exception)
exception - public void removeException(AClass exception)
public boolean whetherCheckUnreachableCode()
public void setWhetherCheckUnreachableCode(boolean whetherCheckUnreachableCode)
public boolean equals(Object obj)
Object 中的 equalspublic boolean isReturned()
public void setReturned(boolean returned)
public List<Executeable> getPreExecuteInsn()
public List<Executeable> getExecuteQueue()
public boolean isUnreachableCode(AbstractOperator currentOperator)
protected abstract void init()
public ProgramBlock getCopy()
public void clonerGenerate(ProgramBlock cloneTo)
owner - 克隆至此public abstract void generateInsn()
public void prepare()
Executeable 复制的描述执行execute的预先操作 在此方法中如果要对执行队列操作 那么不能对执行队列做删除和添加操作 只能做替操作
除了MethodBody类型的Block是通过直接调用的方式执行Prepare方法之外, 其他Block 均在调用创建该Block的时候触发Prepare方法, 所有创建非MethodBody类型Block都在 jw.asmsupport.block.operator.CreateBlockOperator接口中
对于一般的Block,比如if...else... 比如如下代码:
public void method(){
if(...){
while(....){
...
}
}else{
for(...){
...
}
}
}
通常执行prepare的顺序如下:
$ 表示调用 CreateBlockOperator.xxx方法
_\ 表示触发prepare方法
MethodBody
|
|$
|____\ IF Block
| |
| |$
| |____\ While Block
| |
| |
|/______________________|
|
|$
|____\ Else Block
|
|$
|____\ For Block
|
|
Method Body End /_____________|
但是对于每个连续的Try...Catch...Finally...块, asmsupport会先将这一连续的 块逐一创建完成,再执行各自的Prepare方法。 如下图所示
$ 表示调用 createBlockOperator.xxx方法
_\ 表示出发prepare方法
MethodBody
|
|$
|____\ Try Block 1
| |
| |
| |
|$ |
|____\ Catch Block 1 |
| |
|$ |
|____\ Finally Block 1 |
| |
| |
|_________________________|
|
Method Body End /_____________|
Executeable 中的 prepareprotected void subBlockPrepare(ProgramBlock pb)
protected void subBlockPrepare(ProgramBlock pb,
ProgramBlock parentBlock)
pb - parentBlock - public void tiggerTryCatchPrepare()
public final void execute()
Executeable 复制的描述
Executeable 中的 executepublic abstract void executing()
public void addExe(Executeable exe)
exe -
public void addAllExe(int index,
List<Executeable> exes)
public void removeExe(Executeable exe)
exe -
public void replaceExe(Executeable old,
Executeable newp)
old - newp - public void setScope(Scope scope)
public Scope getScope()
public void setInsnHelper(InstructionHelper insnHelper)
public void setOwnerBlock(ProgramBlock block)
public ProgramBlock getOwnerBlock()
public Method getMethod()
public LocalVariable[] getMethodArguments()
protected SuperMethodBody getMethodBody()
public NewMemberClass getMethodOwner()
public InstructionHelper getInsnHelper()
protected final LocalVariable getLocalAnonymousVariableModel(AClass aClass)
protected final LocalVariable getLocalVariableModel(String name,
AClass aClass)
public final LocalVariable createVariable(String name,
AClass aClass,
boolean anonymous,
Parameterized para)
VariableOperator 复制的描述
VariableOperator 中的 createVariablename - variable name.aClass - variable type.anonymous - true will not put the variable to "local variable table". in other world, the name will be invalid.para - this variable initial value, set to null if you want the initial is null.
public final LocalVariable createArrayVariableWithAllocateDimension(String name,
ArrayClass aClass,
boolean anonymous,
Parameterized... allocateDim)
VariableOperator 复制的描述创建数组变量,可分配数组空间大小
createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, null) --> String[][] array = null;
createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, Value.value(3)) --> String[][] array = new String[3][];
createArrayVariableWithAllocateDimension("array", AClassFactory.getArrayClass(String[][].class), false, Value.value(3), Value.value(2)) --> String[][] array = new String[3][2];
VariableOperator 中的 createArrayVariableWithAllocateDimensionname - 变量名aClass - 数组类型anonymous - 是否匿名allocateDim - 预分配的数组空间
public final LocalVariable createArrayVariable(String name,
ArrayClass aClass,
boolean anonymous,
Parameterized value)
VariableOperator 中的 createArrayVariable
public LocalVariable createArrayVariable(String name,
ArrayClass aClass,
boolean anonymous,
Object parameterizedArray)
VariableOperator 中的 createArrayVariable
public final Assigner assign(MemberVariable mv,
Parameterized val)
VariableOperator 复制的描述i = 10;asmsupport code:
assign(i, getValue(10));
VariableOperator 中的 assign
public final ArrayValue newArray(ArrayClass aClass,
Parameterized... allocateDims)
ValueOperator 中的 newArrayIBlockOperators#createArrayVariable(String, ArrayClass, Parameterized, Parameterized...)
public final ArrayValue newArrayWithValue(ArrayClass aClass,
Object arrayObject)
ValueOperator 复制的描述
ValueOperator 中的 newArrayWithValuearrayObject - Parameterized array
public final ArrayValue newArrayWithValue(ArrayClass aClass,
Parameterized[] values)
ValueOperator 复制的描述java code:asmsupport code:
new int[]{2}
newArray(AClassGetter.getArrayClass(int[].class), new Parameterized[]{getValue(1)});
ValueOperator 中的 newArrayWithValue
public final ArrayValue newArrayWithValue(ArrayClass aClass,
Parameterized[][] values)
ValueOperator 复制的描述
ValueOperator 中的 newArrayWithValue
public final ArrayValue newArrayWithValue(ArrayClass aClass,
Parameterized[][][] values)
ValueOperator 复制的描述
ValueOperator 中的 newArrayWithValue
public final ArrayValue newArrayWithValue(ArrayClass aClass,
Parameterized[][][][] values)
ValueOperator 复制的描述
ValueOperator 中的 newArrayWithValue
public final ArrayLoader arrayLoad(IVariable arrayReference,
Parameterized pardim,
Parameterized... parDims)
ArrayOperator 复制的描述
java code:
i[1][2];
asmsupport code:
arrayLoad(i, getValue(1), getValue(2))
ArrayOperator 中的 arrayLoad
public final ArrayLoader arrayLoad(MethodInvoker arrayReference,
Parameterized pardim,
Parameterized... parDims)
ArrayOperator 中的 arrayLoad
public ArrayLoader arrayLoad(ArrayLoader arrayReference,
Parameterized pardim,
Parameterized... parDims)
ArrayOperator 中的 arrayLoad
public ArrayLoader arrayLoad(ArrayValue arrayReference,
Parameterized pardim,
Parameterized... parDims)
ArrayOperator 中的 arrayLoad
public ArrayLoader arrayLoad(Assigner arrayReference,
Parameterized pardim,
Parameterized... parDims)
ArrayOperator 中的 arrayLoad
public final ArrayStorer arrayStore(IVariable arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
ArrayOperator 复制的描述
java code:
i[1][2] = 10;
asmsupport code:
arrayStore(i, getValue(10), getValue(1), getValue(2))
ArrayOperator 中的 arrayStore
public final ArrayStorer arrayStore(MethodInvoker arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
ArrayOperator 中的 arrayStore
public ArrayStorer arrayStore(ArrayLoader arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
ArrayOperator 中的 arrayStore
public ArrayStorer arrayStore(ArrayValue arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
ArrayOperator 中的 arrayStore
public ArrayStorer arrayStore(Assigner arrayReference,
Parameterized value,
Parameterized dim,
Parameterized... dims)
ArrayOperator 中的 arrayStore
public final ArrayLength arrayLength(IVariable arrayReference,
Parameterized... dims)
ArrayOperator 复制的描述
java code:
i[1].length
note: i is int[][]{{1},{2}}
asmsupport code:
arrayLength(i, getValue(1))
ArrayOperator 中的 arrayLength
public ArrayLength arrayLength(MethodInvoker arrayReference,
Parameterized... dims)
ArrayOperator 中的 arrayLength
public ArrayLength arrayLength(ArrayLoader arrayReference,
Parameterized... dims)
ArrayOperator 中的 arrayLength
public ArrayLength arrayLength(ArrayValue arrayReference,
Parameterized... dims)
ArrayOperator 中的 arrayLength
public ArrayLength arrayLength(Assigner arrayReference,
Parameterized... dims)
ArrayOperator 中的 arrayLength
public final CheckCast checkCast(Parameterized cc,
AClass to)
IBlockOperators 复制的描述
IBlockOperators 中的 checkCastcc - valueto - target type
public final Addition add(Parameterized factor1,
Parameterized factor2)
ArithmeticOperator 复制的描述
ArithmeticOperator 中的 add
public final Subtraction sub(Parameterized factor1,
Parameterized factor2)
ArithmeticOperator 复制的描述
ArithmeticOperator 中的 sub
public final Multiplication mul(Parameterized factor1,
Parameterized factor2)
ArithmeticOperator 复制的描述
ArithmeticOperator 中的 mul
public final Division div(Parameterized factor1,
Parameterized factor2)
ArithmeticOperator 复制的描述
ArithmeticOperator 中的 div
public final Modulus mod(Parameterized factor1,
Parameterized factor2)
ArithmeticOperator 中的 modpublic final Negative neg(Parameterized factor)
IBlockOperators 中的 negpublic final Inverts inverts(Parameterized factor)
Bitwise 中的 inverts
public final BitAnd bitAnd(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 bitAnd
public final BitOr bitOr(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 bitOr
public final BitXor bitXor(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 bitXor
public final LeftShift leftShift(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 leftShift
public final RightShift rightShift(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 rightShift
public final UnsignedRightShift unsignedRightShift(Parameterized factor1,
Parameterized factor2)
Bitwise 复制的描述
Bitwise 中的 unsignedRightShiftpublic final BeforeDecrement beforeDec(Crementable crement)
CrementOperator 复制的描述
CrementOperator 中的 beforeDecpublic final AfterDecrement afterDec(Crementable crement)
CrementOperator 复制的描述
CrementOperator 中的 afterDecpublic final BeforeIncrement beforeInc(Crementable crement)
CrementOperator 复制的描述
CrementOperator 中的 beforeIncpublic final AfterIncrement afterInc(Crementable crement)
CrementOperator 复制的描述
CrementOperator 中的 afterInc
public final GreaterThan greaterThan(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 greaterThan
public final GreaterEqual greaterEqual(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 greaterEqual
public final LessThan lessThan(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 lessThan
public final LessEqual lessEqual(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 lessEqual
public final Equal equal(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 equal
public final NotEqual notEqual(Parameterized factor1,
Parameterized factor2)
RelationalOperator 中的 notEqual
public final LogicalAnd logicalAnd(Parameterized factor1,
Parameterized factor2)
LogicalOperator 复制的描述
LogicalOperator 中的 logicalAnd
public final LogicalOr logicalOr(Parameterized factor1,
Parameterized factor2)
LogicalOperator 复制的描述
LogicalOperator 中的 logicalOr
public final LogicalXor logicalXor(Parameterized factor1,
Parameterized factor2)
LogicalOperator 复制的描述
LogicalOperator 中的 logicalXor
public final ShortCircuitAnd conditionalAnd(Parameterized factor1,
Parameterized factor2)
LogicalOperator 复制的描述
LogicalOperator 中的 conditionalAnd
public final ShortCircuitOr conditionalOr(Parameterized factor1,
Parameterized factor2)
LogicalOperator 复制的描述
LogicalOperator 中的 conditionalOrpublic final Not not(Parameterized factor)
LogicalOperator 复制的描述
LogicalOperator 中的 not
public final TernaryOperator ternary(Parameterized exp1,
Parameterized exp2,
Parameterized exp3)
IBlockOperators 中的 ternary
public final Parameterized append(Parameterized par1,
Parameterized... pars)
IBlockOperators 中的 append
public final Parameterized instanceOf(Parameterized obj,
AClass type)
IBlockOperators 中的 instanceOf
public final MethodInvoker invoke(Parameterized caller,
String methodName,
Parameterized... arguments)
MethodInvokeOperator 复制的描述invoke a method by other method invoker, for example:
java code: "String".getClass().toString();
asmsupport code:
MethodInvoker getClass = invoke(Value.value("String"), "getClass()");
invoke(getClass, "toString");
MethodInvokeOperator 中的 invokeprotected final void invokeVerify(AClass a)
public final MethodInvoker invokeStatic(AClass owner,
String methodName,
Parameterized... arguments)
MethodInvokeOperator 中的 invokeStatic
public final MethodInvoker invokeConstructor(AClass owner,
Parameterized... arguments)
MethodInvokeOperator 中的 invokeConstructorpublic final IF ifthan(IF ifs)
CreateBlockOperator 中的 ifthanpublic final WhileLoop whileloop(WhileLoop wl)
CreateBlockOperator 中的 whilelooppublic final WhileLoop dowhile(DoWhileLoop dwl)
CreateBlockOperator 中的 dowhilepublic final ForEachLoop forEach(ForEachLoop forEach)
CreateBlockOperator 中的 forEachpublic final void breakout()
IBlockOperators 中的 breakoutpublic final void continueout()
IBlockOperators 中的 continueoutpublic final void throwException(Parameterized exception)
IBlockOperators 中的 throwExceptionpublic final Try tryDo(Try t)
CreateBlockOperator 中的 tryDopublic final Synchronized syn(Synchronized s)
CreateBlockOperator 中的 synpublic final ThisVariable getThis()
ThisVariableable 复制的描述
ThisVariableable 中的 getThispublic final SuperVariable getSuper()
ThisVariableable 复制的描述
ThisVariableable 中的 getSuperpublic final MethodInvoker invokeOriginalMethod()
MethodInvokeOperator 复制的描述
MethodInvokeOperator 中的 invokeOriginalMethodpublic final Return runReturn()
IBlockOperators 中的 runReturnpublic final Return runReturn(Parameterized parame)
IBlockOperators 中的 runReturnparame - return value
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||