diff scripts/deprecated/java_set.m @ 15771:4698ea77aa75

Hide java_init, java_exit functions. Deprecate java_new, java_set, java_get. * ov-java.cc: Rename java_init, java_exit to internal versions __java_init__, __java_exit__. Remove java_new. Rename java_set, java_get to __java_set__, __java_get__. Use #ifdef HAVE_JAVA blocks to compile the docstrings for Java functions regardless of whether Java is present. Use Octave coding conventions. * scripts/deprecated/java_get.m, scripts/deprecated/java_new.m, scripts/deprecated/java_set.m: Create new scripts to issue a warning about deprecated functions. * scripts/deprecated/module.mk: Add new deprecated scripts to build system.
author Rik <rik@octave.org>
date Wed, 12 Dec 2012 13:33:37 -0800
parents
children 2a2c090fdef8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/deprecated/java_set.m	Wed Dec 12 13:33:37 2012 -0800
@@ -0,0 +1,63 @@
+## Copyright (C) 1995-2012 Kurt Hornik
+##
+## This file is part of Octave.
+##
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or (at
+## your option) any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Loadable Function} {@var{obj} =} java_set (@var{obj}, @var{name}, @var{val})
+## Set the value of the field @var{name} of the Java object @var{obj} to
+## @var{val}.  For static fields, @var{obj} can be a string representing the
+## fully qualified named of the corresponding Java class.
+## 
+## When @var{obj} is a regular Java object, structure-like indexing can be
+## used as a shortcut syntax.  For instance, the two following statements are
+## equivalent
+## 
+## @example
+## @group
+##   java_set (x, "field1", val)
+##   x.field1 = val
+## @end group
+## @end example
+## 
+## @seealso{java_get, java_invoke, javaObject}
+## @end deftypefn
+
+function retval = java_set (obj, name, val)
+
+  persistent warned = false;
+  if (! warned)
+    warned = true;
+    warning ("Octave:deprecated-function",
+             "java_set is obsolete and will be removed from a future version of Octave; use structure-like indexing instead");
+  endif
+
+  if (nargin != 3)
+    print_usage ();
+  endif
+
+  if (isjava (obj))
+    obj.(name) = val;
+  elseif (ischar (obj))
+    ## FIXME: Need a solution for getting static fields of class
+    ##        which does not depend on __java_set__ which will be removed.
+    retval = __java_set__ (obj, name, val);
+  else
+    error ("java_set: OBJ must be a Java object");
+  endif
+
+endfunction
+