JNI needs both the jmethodID and return type. Changed API to
[WebKit-https.git] / WebKit / Plugins.subproj / WebJavaPlugIn.h
index 4fde3d29cfaf86d2c65d6251e0a2a2b81b4eeb97..1aa4aed1d1c6e2a8d0f9d716707e3acea5b0a8cc 100644 (file)
     access to Java VM via the plug-in.
 */
 
+typedef enum {
+    WebJNIReturnTypeInvalid = 0,
+    WebJNIReturnTypeVoid,
+    WebJNIReturnTypeObject,
+    WebJNIReturnTypeBoolean,
+    WebJNIReturnTypeByte,
+    WebJNIReturnTypeChar,
+    WebJNIReturnTypeShort,
+    WebJNIReturnTypeInt,
+    WebJNIReturnTypeLong,
+    WebJNIReturnTypeFloat,
+    WebJNIReturnTypeDouble
+} WebJNIReturnType;
+
 @interface NSObject (WebJavaPlugIn)
 
 /*!
 - (jobject)webPlugInGetApplet;
 
 /*!
-    @method webPlugInCallJava:withMethod:withArgs:
+    @method webPlugInCallJava:method:returnType:arguments:
     @param object The Java instance that will receive the method call.
+    @param method The ID of the Java method to call.
+    @param returnType The return type of the Java method.
     @param args The arguments to use with the method invocation.
-    @discussion Calls in the Java from native code should not make direct
-    use of JNI.  Instead they should use this method to dispatch call to the 
+    @discussion Calls to Java from native code should not make direct
+    use of JNI.  Instead they should use this method to dispatch calls to the 
     Java VM.  This is required to guarantee that the correct thread will receive
-    the call.  webPlugInCallJava:withMethod:withArgs: must always be called from
+    the call.  webPlugInCallJava:method:returnType:arguments: must always be called from
     the AppKit main thread.  This method is only implemented by the Java plug-in.
     @result The result of the method invocation.
 */
-- (jvalue)webPlugInCallJava:(jobject)object withMethod:(jmethodID) withArgs:(jvalue*)args;
+- (jvalue)webPlugInCallJava:(jobject)object method:(jmethodID)method returnType:(WebJNIReturnType)returnType arguments:(jvalue*)args;
 
 @end