0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 function varargout = type(varargin)
0036
0037 import utils.const.*
0038
0039
0040 if utils.helper.isinfocall(varargin{:})
0041 varargout{1} = getInfo(varargin{3});
0042 return
0043 end
0044
0045 utils.helper.msg(msg.MNAME, 'running %s/%s', mfilename('class'), mfilename);
0046
0047
0048 in_names = cell(size(varargin));
0049 for ii = 1:nargin,in_names{ii} = inputname(ii);end
0050
0051
0052 [as, ao_invars, rest] = utils.helper.collect_objects(varargin(:), 'ltpda_uoh', in_names);
0053 [pl, pl_invars, rest] = utils.helper.collect_objects(rest, 'plist', in_names);
0054
0055
0056 pl = combine(pl, getDefaultPlist);
0057 filename = find(pl, 'filename');
0058
0059
0060 if isempty(filename)
0061 if ~isempty(rest)
0062 if strcmp(rest{1}(end-1:end), '.m')
0063 filename = rest{1};
0064 else
0065 filename = fullfile(rest{1}, '.m');
0066 end
0067 end
0068 end
0069
0070
0071 for j=1:numel(as)
0072
0073
0074 fcn(j).cmds = hist2m(as(j).hist);
0075
0076 end
0077
0078
0079 if isempty(filename)
0080
0081 for j=1:numel(fcn)
0082
0083 LL = 25;
0084 disp(utils.prog.strpad('', [LL LL], '-'));
0085 disp(utils.prog.strpad(as(j).name, [LL LL], '-'));
0086 disp(utils.prog.strpad('', [LL LL], '-'));
0087 disp(' ');
0088
0089
0090 for k=numel(fcn(j).cmds):-1:1
0091 disp(fcn(j).cmds{k})
0092 end
0093
0094
0095 disp(' ');
0096 disp(utils.prog.strpad('', [LL LL], '-'));
0097 disp(utils.prog.strpad(as(j).name, [LL LL], '-'));
0098 disp(utils.prog.strpad('', [LL LL], '-'));
0099 disp(' ');
0100 end
0101
0102
0103 else
0104
0105
0106 clear(filename);
0107
0108
0109 ii = getInfo;
0110 fd = fopen(filename, 'w+');
0111 [path,name,ext,vers] = fileparts(filename);
0112
0113
0114 fprintf(fd, '%% %s \n', upper(filename));
0115 fprintf(fd, '%% \n');
0116 fprintf(fd, '%% \n');
0117 fprintf(fd, '%% written by %s / %s\n', mfilename, ii.mversion);
0118 fprintf(fd, '%% \n');
0119 fprintf(fd, '%% \n');
0120 fprintf(fd, ' \n');
0121 fprintf(fd, ' \n');
0122
0123
0124 fprintf(fd, 'function out = %s\n\n', name);
0125 fprintf(fd, 'out = [];\n');
0126 for j=1:numel(as)
0127 fprintf(fd, 'out = [out obj%03d];\n', j);
0128 end
0129 fprintf(fd, '\nend\n\n');
0130
0131
0132 for kk=1:numel(fcn)
0133
0134 fprintf(fd, '%% sub-function for object %s\n', as(kk).name);
0135 fprintf(fd, 'function a_out = obj%03d\n\n', kk);
0136
0137 for jj=numel(fcn(kk).cmds):-1:1
0138 fprintf(fd, '\t%s\n', fcn(kk).cmds{jj});
0139 end
0140
0141 fprintf(fd, '\nend\n\n');
0142 end
0143
0144 fprintf(fd, '\n\n%% END\n');
0145
0146
0147 fclose(fd);
0148
0149 cd ('.');
0150 end
0151
0152 end
0153
0154
0155
0156
0157 function ii = getInfo(varargin)
0158 if nargin == 1 && strcmpi(varargin{1}, 'None')
0159 sets = {};
0160 pl = [];
0161 else
0162 sets = {'Default'};
0163 pl = getDefaultPlist;
0164 end
0165
0166 ii = minfo(mfilename, 'ao', '', utils.const.categories.output, '$Id: type.m,v 1.5 2008/09/04 15:29:30 ingo Exp $', sets, pl);
0167 end
0168
0169
0170
0171
0172 function pl = getDefaultPlist()
0173 pl = plist('filename', '');
0174 end
0175
0176
0177
0178