ident java

This commit is contained in:
Mathieu Virbel 2013-03-13 18:53:39 +01:00
parent ac94b7c815
commit 0686d6b54b
1 changed files with 30 additions and 40 deletions

View File

@ -3,47 +3,37 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class NativeInvocationHandler implements InvocationHandler {
public NativeInvocationHandler(long ptr) {
this.ptr = ptr;
}
public NativeInvocationHandler(long ptr) {
this.ptr = ptr;
}
public Object invoke(Object proxy, Method method, Object[] args) {
/**
if ( method.getName() == "toString" ) {
System.out.println("+ java:invoke toString.");
return "<proxy>";
}
/**/
System.out.print("+ java:invoke(<proxy>, ");
// don't call it, or recursive lookup/proxy will go!
//System.out.print(proxy);
//System.out.print(", ");
System.out.print(method);
System.out.print(", ");
System.out.print(args);
System.out.println(")");
/**
if ( args != null ) {
for ( int i = 0; i < args.length; i++ ) {
System.out.print(" - arg");
System.out.print(i);
System.out.print(",");
System.out.print(args[i].getClass());
System.out.print(": ");
System.out.println(args[i]);
}
}
**/
//System.out.println(method.getParameterTypes());
//System.out.print("+ java:call native invoke0() >>>");
Object ret = invoke0(proxy, method, args);
//System.out.println("+ java:call native invoke0() <<<");
System.out.print("+ java:invoke returned: ");
System.out.println(ret);
return ret;
}
public Object invoke(Object proxy, Method method, Object[] args) {
/**
if ( method.getName() == "toString" ) {
System.out.println("+ java:invoke toString.");
return "<proxy>";
}
/**/
System.out.print("+ java:invoke(<proxy>, ");
// don't call it, or recursive lookup/proxy will go!
//System.out.print(proxy);
//System.out.print(", ");
System.out.print(method);
System.out.print(", ");
System.out.print(args);
System.out.println(")");
System.out.flush();
native Object invoke0(Object proxy, Method method, Object[] args);
//System.out.print("+ java:call native invoke0() >>>");
Object ret = invoke0(proxy, method, args);
//System.out.println("+ java:call native invoke0() <<<");
private long ptr;
System.out.print("+ java:invoke returned: ");
System.out.println(ret);
return ret;
}
native Object invoke0(Object proxy, Method method, Object[] args);
private long ptr;
}