comparison scripts/deprecated/javafields.m @ 15781:c33594eefda7

Add fieldnames.m which extensds fieldnames() to work on Java objects. Deprecate javafields. Rename old C++ fieldnames to __fieldnames__. * scripts/deprecated/javafields.m: Moved from scripts/java. Added deprecated warning. * scripts/java/javafields.m: Moved to scripts/deprecated. * scripts/general/fieldnames.m: New m-file which accepts Java, structure, or Octave objects as inputs. * libinterp/octave-value/ov-struct.cc(Ffieldnames): Renamed fieldnames to __fieldnames__ to avoid class with fieldnames.m. * scripts/deprecated/module.mk: Added javafields to deprecated build. * scripts/general/module.mk: Added fieldnames.m to build. * scripts/java/module.mk: Removed javafields.m from build.
author Rik <rik@octave.org>
date Thu, 13 Dec 2012 10:57:04 -0800
parents scripts/java/javafields.m@0f1a143e5002
children 921912c92102
comparison
equal deleted inserted replaced
15780:f25101b1e37f 15781:c33594eefda7
1 ## Copyright (C) 2007 Michael Goffioul
2 ##
3 ## This file is part of Octave.
4 ##
5 ## Octave is free software; you can redistribute it and/or modify it
6 ## under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 3 of the License, or (at
8 ## your option) any later version.
9 ##
10 ## Octave is distributed in the hope that it will be useful, but
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 ## General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with Octave; see the file COPYING. If not, see
17 ## <http://www.gnu.org/licenses/>.
18
19 ## -*- texinfo -*-
20 ## @deftypefn {Function File} {} javafields (@var{javaobj})
21 ## @deftypefnx {Function File} {} javafields ("@var{classname}")
22 ## @deftypefnx {Function File} {@var{fld_names} =} javafields (@dots{})
23 ## Return the fields of a Java object or Java class in the form of a cell
24 ## array of strings. If no output is requested, print the result
25 ## to the standard output.
26 ## @seealso{fieldnames, methods, javamethods, javaObject}
27 ## @end deftypefn
28
29 function fld_names = javafields (javaobj)
30
31 persistent warned = false;
32 if (! warned)
33 warned = true;
34 warning ("Octave:deprecated-function",
35 "javafields is obsolete and will be removed from a future version of Octave, please use fieldnames instead");
36 endif
37
38 if (nargin != 1)
39 print_usage ();
40 endif
41
42 c_methods = java_invoke ("org.octave.ClassHelper", "getFields", javaobj);
43 method_list = strsplit (c_methods, ';');
44
45 if (nargout == 0)
46 if (! isempty (method_list))
47 disp (method_list);
48 endif
49 else
50 fld_names = cellstr (method_list);
51 endif
52
53 endfunction
54