|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectcn.wensiqun.asmsupport.creator.MethodCreator
public class MethodCreator
| 方法摘要 | |
|---|---|
void |
create(IClassContext context,
ProductClass owner)
创建逻辑实体 |
void |
create(IClassContext context,
SemiClass owner)
创建逻辑实体 |
void |
execute()
执行 |
int |
getAccess()
|
String[] |
getArgNames()
|
AClass[] |
getArguments()
|
Class<?>[] |
getExceptions()
|
String |
getMethodString()
|
String |
getName()
|
AClass |
getReturnClass()
|
static MethodCreator |
methodCreatorForAdd(String name,
AClass[] arguments,
String[] argNames,
AClass returnClass,
Class<?>[] exceptions,
int access,
SuperMethodBody mb)
|
static MethodCreator |
methodCreatorForModify(String name,
AClass[] arguments,
String[] argNames,
AClass returnClass,
Class<?>[] exceptions,
int access,
SuperMethodBody mb)
|
void |
prepare()
执行execute的预先操作 在此方法中如果要对执行队列操作 那么不能对执行队列做删除和添加操作 只能做替操作 除了MethodBody类型的Block是通过直接调用的方式执行Prepare方法之外, 其他Block 均在调用创建该Block的时候触发Prepare方法, 所有创建非MethodBody类型Block都在 jw.asmsupport.block.operator.CreateBlockOperator接口中 对于一般的Block,比如if...else... |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 方法详细信息 |
|---|
public static MethodCreator methodCreatorForModify(String name,
AClass[] arguments,
String[] argNames,
AClass returnClass,
Class<?>[] exceptions,
int access,
SuperMethodBody mb)
public static MethodCreator methodCreatorForAdd(String name,
AClass[] arguments,
String[] argNames,
AClass returnClass,
Class<?>[] exceptions,
int access,
SuperMethodBody mb)
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 中的 preparepublic void execute()
Executeable 复制的描述
Executeable 中的 execute
public void create(IClassContext context,
SemiClass owner)
IMemberCreator 复制的描述
IMemberCreator 中的 create
public void create(IClassContext context,
ProductClass owner)
IMemberCreator 复制的描述
IMemberCreator 中的 createpublic String getName()
IMethodCreator 中的 getNamepublic AClass[] getArguments()
IMethodCreator 中的 getArgumentspublic String[] getArgNames()
public AClass getReturnClass()
public Class<?>[] getExceptions()
public int getAccess()
public String getMethodString()
IMethodCreator 中的 getMethodString
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||