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 classdef minfo < ltpda_nuo
0031
0032
0033
0034
0035 properties (SetAccess = private)
0036 mname = '';
0037 mclass = '';
0038 mpackage = '';
0039 mcategory = '';
0040 mversion = '';
0041 sets = {};
0042 plists = [];
0043 argsmin = 1;
0044 argsmax = 0;
0045 end
0046
0047
0048
0049
0050 methods
0051
0052
0053
0054
0055 function obj = set.mname(obj,val)
0056 if ~ischar(val)
0057 error('### The <mname> property should be a character array.');
0058 end
0059 obj.mname = val;
0060 end
0061
0062 function obj = set.mclass(obj,val)
0063 if ~ischar(val)
0064 error('### The <mclass> property should be a character array.');
0065 end
0066 obj.mclass = val;
0067 end
0068
0069 function obj = set.mpackage(obj,val)
0070 if ~ischar(val)
0071 error('### The <mpackage> property should be a character array.');
0072 end
0073 obj.mpackage = val;
0074 end
0075
0076 function obj = set.mcategory(obj,val)
0077 if ~ischar(val)
0078 error('### The <mcategory> property should be a character array.');
0079 end
0080 obj.mcategory = val;
0081 end
0082
0083 function obj = set.mversion(obj,val)
0084 if ~ischar(val)
0085 error('### The <mversion> property should be a character array.');
0086 end
0087 obj.mversion = val;
0088 end
0089
0090 function obj = set.sets(obj,val)
0091 if ~iscell(val)
0092 error('### The <sets> property should be a cell array.');
0093 end
0094 obj.sets = val;
0095 end
0096
0097 function obj = set.plists(obj,val)
0098 if ~isempty(val)
0099 if ~isa(val, 'plist')
0100 error('### The <plists> property should be a plist array.');
0101 end
0102 end
0103 obj.plists = val;
0104 end
0105
0106 function obj = set.argsmin(obj,val)
0107 if ~isnumeric(val) || val < 0 || rem(val,1) ~= 0
0108 error('### The <argsmin> property should be a positive integer.');
0109 end
0110 obj.argsmin = val;
0111 end
0112
0113 function obj = set.argsmax(obj,val)
0114 if ~isnumeric(val) || val < 0 || rem(val,1) ~= 0
0115 error('### The <argsmax> property should be a positive integer.');
0116 end
0117 obj.argsmax = val;
0118 end
0119
0120
0121
0122
0123 function ii = minfo(varargin)
0124
0125
0126 ii = ii@ltpda_nuo(varargin{:});
0127
0128
0129
0130 if ~(nargin == 1 && isstruct(varargin{1}))
0131
0132 ii.setVersion('$Id: minfo.m,v 1.14 2008/08/11 07:25:40 hewitson Exp $');
0133 end
0134
0135 switch nargin
0136 case 0
0137 case 1
0138
0139 if isstruct(varargin{1})
0140
0141
0142
0143
0144 ii.mname = varargin{1}.mname;
0145 ii.mclass = varargin{1}.mclass;
0146 ii.mpackage = varargin{1}.mpackage;
0147 ii.mcategory = varargin{1}.mcategory;
0148 ii.mversion = varargin{1}.mversion;
0149 ii.sets = varargin{1}.sets;
0150 ii.plists = varargin{1}.plists;
0151 ii.argsmin = varargin{1}.argsmin;
0152 ii.argsmax = varargin{1}.argsmax;
0153
0154 elseif isa(varargin{1}, 'minfo')
0155 ii = copy(varargin{1}, 1);
0156 else
0157 ii.mname = varargin{1};
0158 end
0159
0160 case 2
0161 ii.mname = varargin{1};
0162 ii.mclass = varargin{2};
0163 case 3
0164 ii.mname = varargin{1};
0165 ii.mclass = varargin{2};
0166 ii.mpackage = varargin{3};
0167 case 4
0168 ii.mname = varargin{1};
0169 ii.mclass = varargin{2};
0170 ii.mpackage = varargin{3};
0171 ii.mcategory = varargin{4};
0172 case 5
0173 ii.mname = varargin{1};
0174 ii.mclass = varargin{2};
0175 ii.mpackage = varargin{3};
0176 ii.mcategory = varargin{4};
0177 ii.mversion = varargin{5};
0178 case 6
0179 ii.mname = varargin{1};
0180 ii.mclass = varargin{2};
0181 ii.mpackage = varargin{3};
0182 ii.mcategory = varargin{4};
0183 ii.mversion = varargin{5};
0184 ii.sets = varargin{6};
0185 case 7
0186 ii.mname = varargin{1};
0187 ii.mclass = varargin{2};
0188 ii.mpackage = varargin{3};
0189 ii.mcategory = varargin{4};
0190 ii.mversion = varargin{5};
0191 ii.sets = varargin{6};
0192
0193
0194 pls = varargin{7};
0195 while numel(pls) < numel(ii.sets)
0196 pls = [pls plist];
0197 end
0198 ii.plists = pls;
0199
0200 if numel(ii.plists) ~= numel(ii.sets)
0201 sets = ii.sets;
0202 while numel(sets) < numel(ii.plists)
0203 sets = [sets {''}];
0204 end
0205 ii.sets = sets;
0206 end
0207 case 8
0208 ii.mname = varargin{1};
0209 ii.mclass = varargin{2};
0210 ii.mpackage = varargin{3};
0211 ii.mcategory = varargin{4};
0212 ii.mversion = varargin{5};
0213 ii.sets = varargin{6};
0214
0215
0216 pls = varargin{7};
0217 while numel(pls) < numel(ii.sets)
0218 pls = [pls plist];
0219 end
0220 ii.plists = pls;
0221
0222 if numel(ii.plists) ~= numel(ii.sets)
0223 sets = ii.sets;
0224 while numel(sets) < numel(ii.plists)
0225 sets = [sets {''}];
0226 end
0227 ii.sets = sets;
0228 end
0229 ii.argsmin = varargin{8};
0230 case 9
0231 ii.mname = varargin{1};
0232 ii.mclass = varargin{2};
0233 ii.mpackage = varargin{3};
0234 ii.mcategory = varargin{4};
0235 ii.mversion = varargin{5};
0236 ii.sets = varargin{6};
0237
0238
0239 pls = varargin{7};
0240 while numel(pls) < numel(ii.sets)
0241 pls = [pls plist];
0242 end
0243 ii.plists = pls;
0244
0245 if numel(ii.plists) ~= numel(ii.sets)
0246 sets = ii.sets;
0247 while numel(sets) < numel(ii.plists)
0248 sets = [sets {''}];
0249 end
0250 ii.sets = sets;
0251 end
0252 ii.argsmin = varargin{8};
0253 ii.argsmax = varargin{9};
0254 otherwise
0255 error('### Unknown number of constructor arguments');
0256 end
0257 end
0258 end
0259
0260
0261
0262
0263
0264 methods
0265 varargout = char(varargin)
0266 varargout = copy(varargin)
0267 varargout = display(varargin)
0268 varargout = setMversion(varargin)
0269 end
0270
0271
0272
0273
0274
0275 methods (Access = protected)
0276 end
0277
0278
0279
0280
0281
0282 methods (Static = true)
0283
0284 varargout = update_struct(varargin);
0285
0286 function out = VEROUT()
0287 out = '$Id: minfo.m,v 1.14 2008/08/11 07:25:40 hewitson Exp $';
0288 end
0289
0290 function ii = getInfo(varargin)
0291 ii = utils.helper.generic_getInfo(varargin{:}, 'minfo');
0292 end
0293
0294 function out = SETS()
0295 out = {'Default'};
0296 end
0297
0298 function out = getDefaultPlist(set)
0299 switch set
0300 case 'Default'
0301 out = plist();
0302 otherwise
0303 out = plist();
0304 end
0305 end
0306
0307 end
0308
0309
0310
0311
0312
0313 methods (Static = true, Access = private)
0314 end
0315
0316 end
0317
0318