com.frameworkset.proxy.TestInvocationHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bboss-util Show documentation
Show all versions of bboss-util Show documentation
bboss is a j2ee framework include aop/ioc,mvc,persistent,taglib,rpc,event ,bean-xml serializable and so on.http://www.bbossgroups.com
package com.frameworkset.proxy;
import java.lang.reflect.Method;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.ArrayList;
import java.util.List;
/**
* Title:
*
* Description:
*
* Copyright: Copyright (c) 2005
*
* Company:
*
* @author biaoping.yin
* @version 1.0
*/
public class TestInvocationHandler extends InvocationHandler {
/**
* Processes a method invocation on a proxy instance and returns the
* result.
*
* @param proxy the proxy instance that the method was invoked on
* @param method the Method
instance corresponding to the
* interface method invoked on the proxy instance. The declaring class
* of the Method
object will be the interface that the
* method was declared in, which may be a superinterface of the proxy
* interface that the proxy class inherits the method through.
* @param args an array of objects containing the values of the
* arguments passed in the method invocation on the proxy instance, or
* null
if interface method takes no arguments. Arguments
* of primitive types are wrapped in instances of the appropriate
* primitive wrapper class, such as java.lang.Integer
or
* java.lang.Boolean
.
* @return the value to return from the method invocation on the proxy
* instance. If the declared return type of the interface method is a
* primitive type, then the value returned by this method must be an
* instance of the corresponding primitive wrapper class; otherwise,
* it must be a type assignable to the declared return type. If the
* value returned by this method is null
and the
* interface method's return type is primitive, then a
* NullPointerException
will be thrown by the method
* invocation on the proxy instance. If the value returned by this
* method is otherwise not compatible with the interface method's
* declared return type as described above, a
* ClassCastException
will be thrown by the method
* invocation on the proxy instance.
* @throws Throwable the exception to throw from the method invocation
* on the proxy instance. The exception's type must be assignable
* either to any of the exception types declared in the
* throws
clause of the interface method or to the
* unchecked exception types java.lang.RuntimeException
* or java.lang.Error
. If a checked exception is thrown
* by this method that is not assignable to any of the exception types
* declared in the throws
clause of the interface method,
* then an {@link UndeclaredThrowableException} containing the
* exception that was thrown by this method will be thrown by the
* method invocation on the proxy instance.
* @todo Implement this java.lang.reflect.InvocationHandler method
*/
public Object invoke(Object proxy, Method method, Object[] args) throws
Throwable {
List list = new ArrayList();
for(int i = 0; i < 5; i ++)
{
TestProxyImpl t = new TestProxyImpl();
t.setString("hello" + i);
list.add(t);
}
Object obj = method.invoke(super.delegate,args);
for(int i = 0; i < 5; i ++)
{
System.out.println(obj);
obj = method.invoke(list.get(i), args);
}
return obj;
}
public TestInvocationHandler(Object delegate)
{
super(delegate);
}
public static void main(String[] args) {
}
}