diff libinterp/octave-value/ov-java.cc @ 15790:921912c92102

Deprecate java_invoke, replace with javaMethod. Update all m-files to use javaMethod. * scripts/deprecated/java_invoke.m: New m-file with warning about function being deprecated. * libinterp/octave-value/ov-java.cc(Fjava_invoke, FjavaMethod): Remove java_invoke. Replace body of javaMethod with old java_invoke code. * libinterp/octave-value/ov-java.cc(do_java_invoke): Rename to do_javaMethod. * libinterp/octave-value/ov-java.cc(do_java_create): Rename to do_javaObject. * libinterp/octave-value/ov-java.h(do_java_invoke, do_java_create): Rename prototypes for functions to do_javaMethod and do_javaObject respectively. * scripts/deprecated/javafields.m, scripts/deprecated/javamethods.m, scripts/deprecated/module.mk, scripts/general/fieldnames.m, scripts/general/methods.m, scripts/java/errordlg.m, scripts/java/helpdlg.m, scripts/java/inputdlg.m, scripts/java/javaArray.m, scripts/java/javaaddpath.m, scripts/java/javaclasspath.m, scripts/java/javamem.m, scripts/java/javarmpath.m, scripts/java/listdlg.m, scripts/java/msgbox.m, scripts/java/questdlg.m, scripts/java/warndlg.m: Replace java_invoke calls with javaMethod calls.
author Rik <rik@octave.org>
date Fri, 14 Dec 2012 09:51:37 -0800
parents 4698ea77aa75
children 12394261da0f
line wrap: on
line diff
--- a/libinterp/octave-value/ov-java.cc	Fri Dec 14 09:43:22 2012 -0800
+++ b/libinterp/octave-value/ov-java.cc	Fri Dec 14 09:51:37 2012 -0800
@@ -73,8 +73,6 @@
   Java_org_octave_Octave_needThreadedInvokation (JNIEnv *, jclass);
 }
 
-static octave_value _java_invoke (const octave_value_list& args);
-
 static JavaVM *jvm = 0;
 static bool jvm_attached = false;
 
@@ -1400,51 +1398,6 @@
   return retval;
 }
 
-// internally called from java_invoke and javaMethod.
-
-static octave_value
-_java_invoke (const octave_value_list& args)
-{
-  octave_value retval;
-
-  initialize_java ();
-
-  if (! error_state)
-    {
-      JNIEnv *current_env = octave_java::thread_jni_env ();
-
-      if (args.length () > 1)
-        {
-          std::string methodname = args(1).string_value ();
-          if (! error_state)
-            {
-              octave_value_list tmp;
-              for (int i=2; i<args.length (); i++)
-                tmp(i-2) = args(i);
-
-              if (args(0).class_name () == "octave_java")
-                {
-                  octave_java *jobj = TO_JAVA (args(0));
-                  retval = jobj->do_java_invoke (current_env, methodname, tmp);
-                }
-              else if (args(0).is_string ())
-                {
-                  std::string cls = args(0).string_value ();
-                  retval = octave_java::do_java_invoke (current_env, cls, methodname, tmp);
-                }
-              else
-                error ("java_invoke: OBJ must be a Java object or a string");
-            }
-          else
-            error ("java_invoke: METHODNAME must be a string");
-        }
-      else
-        print_usage ();
-    }
-
-  return retval;
-}
-
 JNIEXPORT jboolean JNICALL
 Java_org_octave_Octave_call (JNIEnv *env, jclass, jstring funcName,
                              jobjectArray argin, jobjectArray argout)
@@ -1589,11 +1542,11 @@
         {
           octave_value_list ovl;
           count++;
-          ovl(0) = octave_value (this);
-          ovl(1) = (idx.front ())(0);
+          ovl(1) = octave_value (this);
+          ovl(0) = (idx.front ())(0);
           std::list<octave_value_list>::const_iterator it = idx.begin ();
           ovl.append (*++it);
-          retval = feval (std::string ("java_invoke"), ovl, 1);
+          retval = feval (std::string ("javaMethod"), ovl, 1);
           skip++;
         }
       else
@@ -1731,7 +1684,7 @@
 }
 
 octave_value
-octave_java::do_java_invoke (JNIEnv* jni_env, const std::string& name,
+octave_java::do_javaMethod (JNIEnv* jni_env, const std::string& name,
                              const octave_value_list& args)
 {
   octave_value retval;
@@ -1758,7 +1711,7 @@
 }
 
 octave_value
-octave_java:: do_java_invoke (JNIEnv* jni_env,
+octave_java:: do_javaMethod (JNIEnv* jni_env,
                               const std::string& class_name,
                               const std::string& name,
                               const octave_value_list& args)
@@ -1788,7 +1741,7 @@
 }
 
 octave_value
-octave_java::do_java_create (JNIEnv* jni_env, const std::string& name,
+octave_java::do_javaObject (JNIEnv* jni_env, const std::string& name,
                              const octave_value_list& args)
 {
   octave_value retval;
@@ -1937,13 +1890,14 @@
 @end group\n\
 @end example\n\
 \n\
-@seealso{java_invoke}\n\
+@seealso{javaMethod}\n\
 @end deftypefn")
 {
 #ifdef HAVE_JAVA
   octave_value retval;
 
   initialize_java ();
+
   if (! error_state)
     {
       JNIEnv *current_env = octave_java::thread_jni_env ();
@@ -1956,7 +1910,7 @@
               octave_value_list tmp;
               for (int i=1; i<args.length (); i++)
                 tmp(i-1) = args(i);
-              retval = octave_java::do_java_create (current_env, classname, tmp);
+              retval = octave_java::do_javaObject (current_env, classname, tmp);
             }
           else
             error ("javaObject: CLASSNAME argument must be a string");
@@ -1972,39 +1926,10 @@
 #endif
 }
 
-DEFUN (java_invoke, args, ,
-  "-*- texinfo -*-\n\
-@deftypefn {Built-in Function} {@var{ret} =} java_invoke (@var{obj}, @var{methodname}, @var{arg1}, @dots{})\n\
-Invoke the method @var{methodname} on the Java object @var{obj} with the arguments\n\
-@var{arg1}, @dots{}  For static methods, @var{obj} can be a string\n\
-representing the fully qualified name of the corresponding class.  The\n\
-function returns the result of the method invocation.\n\
-\n\
-When @var{obj} is a regular Java object, structure-like indexing can be\n\
-used as a shortcut syntax.  For instance, the two following statements are\n\
-equivalent\n\
-\n\
-@example\n\
-@group\n\
-  ret = java_invoke (x, \"method1\", 1.0, \"a string\")\n\
-  ret = x.method1 (1.0, \"a string\")\n\
-@end group\n\
-@end example\n\
-\n\
-@seealso{javaMethod, javaObject}\n\
-@end deftypefn")
-{
-#ifdef HAVE_JAVA
-  return _java_invoke (args);
-#else
-  error ("java_invoke: Octave was not compiled with Java interface");
-  return octave_value ();
-#endif
-}
-
 DEFUN (javaMethod, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Built-in Function} {@var{ret} =} javaMethod (@var{methodname}, @var{obj}, @var{arg1}, @dots{})\n\
+@deftypefn  {Built-in Function} {@var{ret} =} javaMethod (@var{methodname}, @var{obj})\n\
+@deftypefnx {Built-in Function} {@var{ret} =} javaMethod (@var{methodname}, @var{obj}, @var{arg1}, @dots{})\n\
 Invoke the method @var{methodname} on the Java object @var{obj} with the arguments\n\
 @var{arg1}, @dots{}  For static methods, @var{obj} can be a string\n\
 representing the fully qualified name of the corresponding class.  The\n\
@@ -2021,28 +1946,45 @@
 @end group\n\
 @end example\n\
 \n\
-@seealso{java_invoke, javaObject}\n\
+@seealso{methods, javaObject}\n\
 @end deftypefn")
 {
 #ifdef HAVE_JAVA
   octave_value retval;
 
-  if (args.length () > 1)
+  initialize_java ();
+
+  if (! error_state)
     {
-      // swap first two arguments
-      octave_value_list tmp;
-      tmp(0) = args(1);
-      tmp(1) = args(0);
+      JNIEnv *current_env = octave_java::thread_jni_env ();
+
+      if (args.length () > 1)
+        {
+          std::string methodname = args(0).string_value ();
+          if (! error_state)
+            {
+              octave_value_list tmp;
+              for (int i=2; i<args.length (); i++)
+                tmp(i-2) = args(i);
 
-      // copy remaining arguments
-      for (int i=2; i<args.length (); i++)
-        tmp(i) = args(i);
-
-      retval = _java_invoke (tmp);
-    }
-  else
-    {
-      print_usage ();
+              if (args(1).class_name () == "octave_java")
+                {
+                  octave_java *jobj = TO_JAVA (args(1));
+                  retval = jobj->do_javaMethod (current_env, methodname, tmp);
+                }
+              else if (args(1).is_string ())
+                {
+                  std::string cls = args(1).string_value ();
+                  retval = octave_java::do_javaMethod (current_env, cls, methodname, tmp);
+                }
+              else
+                error ("javaMethod: OBJ must be a Java object or a string");
+            }
+          else
+            error ("javaMethod: METHODNAME must be a string");
+        }
+      else
+        print_usage ();
     }
 
   return retval;
@@ -2070,7 +2012,7 @@
 @end group\n\
 @end example\n\
 \n\
-@seealso{java_set, java_invoke, javaObject}\n\
+@seealso{__java_set__, javaMethod, javaObject}\n\
 @end deftypefn")
 {
 #ifdef HAVE_JAVA
@@ -2132,7 +2074,7 @@
 @end group\n\
 @end example\n\
 \n\
-@seealso{__java_get__, java_invoke, javaObject}\n\
+@seealso{__java_get__, javaMethod, javaObject}\n\
 @end deftypefn")
 {
 #ifdef HAVE_JAVA
@@ -2178,7 +2120,7 @@
 
 DEFUN (java2mat, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Built-in Function} {} java2mat (@var{obj})\n\
+@deftypefn {Built-in Function} {} java2mat (@var{javaobj})\n\
 Undocumented internal function.\n\
 @end deftypefn")
 {
@@ -2266,7 +2208,7 @@
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} isjava (@var{x})\n\
 Return true if @var{x} is a Java object.\n\
-@seealso{class, typeinfo, isa}\n\
+@seealso{class, typeinfo, isa, javaObject}\n\
 @end deftypefn")
 {
   octave_value retval;