private static void Test_OnJavaCustomNativeCall(int procId, string className, string methodName, NktJavaObject objectOrClass, ref object[] parameters, out object retValue) { retValue = null; if (className == "InjectTestWithCallbacks") { if (methodName == "noParametersReturningInt") { if (parameters.Length == 0) { retValue = 10; } } else if (methodName == "noParametersReturningJavaLangDoubleObject") { if (parameters.Length == 0) { try { retValue = remoteBridge.CreateJavaObject(procJavaTest.Id, "java/lang/Double", 10.0); } catch (System.Exception /*ex*/) { retValue = null; } } } else if (methodName == "withParametersReturningInt") { int res; if (parameters.Length == 5) { try { if ((string)parameters[0] == "Test_WithParametersReturningInt") { NktJavaObject javaObj = parameters[1] as NktJavaObject; res = (int)javaObj.get_Field("value"); //accessing private field int[,] intArrayParam = parameters[2] as int[,]; for (int i=0; i<2; i++) { for (int j=0; j<3; j++) res += intArrayParam[i,j]; } res += (int)(double)parameters[3]; float[] flt = parameters[4] as float[]; for (int i=0; i<2; i++) res += (int)flt[i]; retValue = res; } } catch (System.Exception /*ex*/) { retValue = null; } } } else if (methodName == "withParametersReturningJavaLangDoubleObject") { double res; if (parameters.Length == 5) { try { if ((string)parameters[0] == "Test_WithParametersReturningJavaLangDoubleObject") { NktJavaObject javaObj = parameters[1] as NktJavaObject; res = (double)(int)javaObj.get_Field("value"); //accessing private field int[,] intArrayParam = parameters[2] as int[,]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) res += (double)intArrayParam[i, j]; } res += (double)parameters[3]; float[] flt = parameters[4] as float[]; for (int i = 0; i < 2; i++) res += (double)flt[i]; retValue = remoteBridge.CreateJavaObject(procJavaTest.Id, "java/lang/Double", res); } } catch (System.Exception /*ex*/) { retValue = null; } } } } return; }
static private void Test_OnJavaCustomNativeCall(int procId, string className, string methodName, NktJavaObject objectOrClass, ref object[] parameters, out object retValue) { retValue = null; if (className == "InjectTestWithCallbacks") { if (methodName == "noParametersReturningInt") { if (parameters.Length == 0) { retValue = 10; } } else if (methodName == "noParametersReturningJavaLangDoubleObject") { if (parameters.Length == 0) { try { retValue = remoteBridge.CreateJavaObject(procJavaTest.Id, "java/lang/Double", 10.0); } catch (System.Exception /*ex*/) { retValue = null; } } } else if (methodName == "withParametersReturningInt") { int res; if (parameters.Length == 5) { try { if ((string)parameters[0] == "Test_WithParametersReturningInt") { NktJavaObject javaObj = parameters[1] as NktJavaObject; res = (int)javaObj.get_Field("value"); //accessing private field int[,] intArrayParam = parameters[2] as int[, ]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { res += intArrayParam[i, j]; } } res += (int)(double)parameters[3]; float[] flt = parameters[4] as float[]; for (int i = 0; i < 2; i++) { res += (int)flt[i]; } retValue = res; } } catch (System.Exception /*ex*/) { retValue = null; } } } else if (methodName == "withParametersReturningJavaLangDoubleObject") { double res; if (parameters.Length == 5) { try { if ((string)parameters[0] == "Test_WithParametersReturningJavaLangDoubleObject") { NktJavaObject javaObj = parameters[1] as NktJavaObject; res = (double)(int)javaObj.get_Field("value"); //accessing private field int[,] intArrayParam = parameters[2] as int[, ]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { res += (double)intArrayParam[i, j]; } } res += (double)parameters[3]; float[] flt = parameters[4] as float[]; for (int i = 0; i < 2; i++) { res += (double)flt[i]; } retValue = remoteBridge.CreateJavaObject(procJavaTest.Id, "java/lang/Double", res); } } catch (System.Exception /*ex*/) { retValue = null; } } } } return; }