⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamicproxyhandler.java

📁 办公自动化项目
💻 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 + -