source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/lightspeed/toJava.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 2.1 KB
Line 
1function jv = toJava(v,collection)
2%toJava       Convert to Java representation.
3% toJava(v) returns a Java object representing the matlab value v.
4% toJava(v,1) requires the result to be a collection, not a simple object
5% such as java.lang.Double.
6%
7% Conversions:
8% scalar           -> java.lang.Double
9% numeric array    -> javaArray of Double
10% character array  -> java.lang.String or array of same
11% empty array      -> java.util.Vector
12% cell array       -> javaArray of Objects
13% empty cell array -> java.util.BitSet
14% structure        -> java.util.HashTable
15% class            -> struct with '_class' property
16%
17% See also fromJava.
18
19% Written by Tom Minka
20% (c) Microsoft Corporation. All rights reserved.
21
22if nargin < 2
23  collection = 0;
24end
25% in case v already is a Java object
26jv = v;
27if isnumeric(v)
28  if isempty(v)
29    jv = java.util.Vector;
30  elseif length(v) == 1
31    if collection
32      jv = javaArray('java.lang.Double',1);
33      jv(1) = java.lang.Double(v);
34    else
35      jv = java.lang.Double(v);
36    end
37  else
38    sz = size(v);
39    jv = javaArray('java.lang.Double',sz);
40    v = v(:);
41    for i = 1:prod(sz)
42      index = substruct('()',num2cell(ind2subv(sz,i)));
43      subsasgn(jv,index,toJava(v(i)));
44    end
45  end
46  return
47end
48if ischar(v)
49  n = rows(v);
50  if n == 1 & ~collection
51    jv = java.lang.String(v);
52  else
53    jv = javaArray('java.lang.String',n);
54    for i = 1:n
55      jv(i) = java.lang.String(deblank(v(i,:)));
56    end
57  end
58end
59if iscell(v)
60  if isempty(v)
61    jv = java.util.BitSet;
62  else
63    sz = size(v);
64    jv = javaArray('java.lang.Object',sz);
65    v = v(:);
66    for i = 1:prod(sz)
67      index = substruct('()',num2cell(ind2subv(sz,i)));
68      subsasgn(jv,index,toJava(v{i}));
69    end
70  end
71  return
72end
73if isobject(v) | isstruct(v)
74  jv = java.util.Hashtable;
75  if isobject(v)
76    jv.put('_class',class(v));
77    v = struct(v);
78  end
79  % record the order of the fieldnames
80  fields = java.util.Vector;
81  for f = fieldnames(v)'
82    fields.addElement(char(f));
83    jv.put(char(f),toJava(getfield(v,char(f))));
84  end
85  jv.put('_fields',fields);
86  return
87end
Note: See TracBrowser for help on using the repository browser.