package net.sourceforge.jaxor.tests;
import junit.framework.Assert;
import net.sourceforge.jaxor.util.NullProxy;
import net.sourceforge.jaxor.util.SystemException;
import java.lang.reflect.Method;
/*
* User: Mike
* Date: Oct 18, 2002
* Time: 9:38:00 PM
*/
public class Invoker {
public static void invoke(Object set) {
Class[] interfaces = set.getClass().getInterfaces();
for (int j = 0; j < interfaces.length; j++) {
Class inter = interfaces[j];
Method[] methods = inter.getMethods();
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
Class[] params = method.getParameterTypes();
Object[] args = createArgs(params);
Assert.assertNotNull("method cannot be null", method);
try {
method.invoke(set, args);
} catch (Exception e) {
throw new SystemException(method.getName(), e);
}
}
}
}
private static Object[] createArgs(Class[] params) {
Object[] args = new Object[params.length];
for (int i = 0; i < args.length; i++) {
Class param = params[i];
args[i] = NullProxy.getDefaultInstance(param);
}
return args;
}
}
|