📄 dynamicproxyhandler.java
字号:
package hong.javanet.aop;
import java.lang.reflect.*;
import hong.javanet.frame.*;
import hong.javanet.util.*;
public class DynamicProxyHandler implements Command {
protected Object originalObject;
protected DynamicProxyHandler originalProxy;
protected Object topOriginalObject;
protected Method method;
protected Object[] parameters;
public DynamicProxyHandler bind(Object originalObject, String methodName,
Class[] paramClasses, Object[] parameters) {
try {
this.originalObject = originalObject;
if(originalObject instanceof DynamicProxyHandler) {
this.topOriginalObject = ((DynamicProxyHandler)originalObject)
.topOriginalObject;
this.originalProxy = (DynamicProxyHandler)originalObject;
} else {
this.topOriginalObject = originalObject;
}
this.method = originalObject.getClass().getMethod(
methodName, paramClasses);
this.parameters = parameters;
return this;
} catch (Throwable ex) {
throw ExceptionUtil.wrapException(ex);
}
}
public DynamicProxyHandler bind(Object originalObject, String methodName) {
return this.bind(originalObject, methodName, new Class[0], new Object[0]);
}
public DynamicProxyHandler bind(Command cmd) {
return this.bind(cmd,"execute",new Class[0],new Object[0]);
}
public void execute() throws Exception {
try {
method.invoke(this.originalObject, this.parameters);
} catch (Throwable ex) {
throw ExceptionUtil.wrapException(ex);
}
}
public Method getMethod() {
return method;
}
public Object getOriginalObject() {
return originalObject;
}
public Object[] getParameters() {
return parameters;
}
public Object getTopOriginalObject() {
return topOriginalObject;
}
public DynamicProxyHandler getOriginalProxy() {
return originalProxy;
}
public void setMethod(Method method) {
this.method = method;
}
public void setOriginalObject(Object originalObject) {
this.originalObject = originalObject;
}
public void setParameters(Object[] parameters) {
this.parameters = parameters;
}
public void setTopOriginalObject(Object topOriginalObject) {
this.topOriginalObject = topOriginalObject;
}
public void setOriginalProxy(DynamicProxyHandler originalProxy) {
this.originalProxy = originalProxy;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -