Home > classes > @minfo > minfo.m

minfo

PURPOSE ^

MINFO a helper class for LTPDA methods.

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

 MINFO a helper class for LTPDA methods.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 MINFO is a helper class for LTPDA methods. It holds minformation about the
 method.

   >> ii = minfo(mname, mclass, mpackage, mcategory, mversion, param_sets, plists, argsmin, argsmax)

   Inputs:
     mname     - The method name
     mclass    - The method class
     mpackage  - The package (if applicable)
     mcategory - The category of the method
     mversion  - The version of the method
     sets      - A cell array of parameter set names
     plists    - An array of parameter lists
     argsmin   - Minimum number of input arguments [0 is unbounded]
     argsmax   - Maximum number of input arguments [0 is unbounded]

   Outputs:
     ii  - an minfo object


 M Hewitson 27-05-08

 $Id: minfo.m,v 1.14 2008/08/11 07:25:40 hewitson Exp $

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 % MINFO a helper class for LTPDA methods.
0002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0003 %
0004 % MINFO is a helper class for LTPDA methods. It holds minformation about the
0005 % method.
0006 %
0007 %   >> ii = minfo(mname, mclass, mpackage, mcategory, mversion, param_sets, plists, argsmin, argsmax)
0008 %
0009 %   Inputs:
0010 %     mname     - The method name
0011 %     mclass    - The method class
0012 %     mpackage  - The package (if applicable)
0013 %     mcategory - The category of the method
0014 %     mversion  - The version of the method
0015 %     sets      - A cell array of parameter set names
0016 %     plists    - An array of parameter lists
0017 %     argsmin   - Minimum number of input arguments [0 is unbounded]
0018 %     argsmax   - Maximum number of input arguments [0 is unbounded]
0019 %
0020 %   Outputs:
0021 %     ii  - an minfo object
0022 %
0023 %
0024 % M Hewitson 27-05-08
0025 %
0026 % $Id: minfo.m,v 1.14 2008/08/11 07:25:40 hewitson Exp $
0027 %
0028 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0029 
0030 classdef minfo < ltpda_nuo
0031 
0032   %------------------------------------------------
0033   %---------- Private read-only Properties --------
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   %-------- Declaration of public methods --------
0049   %------------------------------------------------
0050   methods
0051 
0052     %------------------------------------------------
0053     %-------- Property rules                 --------
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     %                                Constructor                                %
0122     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0123     function ii = minfo(varargin)
0124 
0125       %%% Call superclass
0126       ii = ii@ltpda_nuo(varargin{:});
0127 
0128       %%%%%%%%%%   Set dafault values   %%%%%%%%%%
0129       %%% Exept for a struct as an input
0130       if ~(nargin == 1 && isstruct(varargin{1}))
0131         % Set version
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             %%%%%%%%%%   ii = minfo(structure)   %%%%%%%%%%
0141             %%%%%%%%%%   necessary for readxml   %%%%%%%%%%
0142 
0143             %%% Set properties which are declared in this class
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           % add plists until we have at least as many as set
0193           % descriptions
0194           pls = varargin{7};
0195           while numel(pls) < numel(ii.sets)
0196             pls = [pls plist];
0197           end
0198           ii.plists = pls;
0199           % Check we have one set description per plist
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           % add plists until we have at least as many as set
0215           % descriptions
0216           pls = varargin{7};
0217           while numel(pls) < numel(ii.sets)
0218             pls = [pls plist];
0219           end
0220           ii.plists = pls;
0221           % Check we have one set description per plist
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           % add plists until we have at least as many as set
0238           % descriptions
0239           pls = varargin{7};
0240           while numel(pls) < numel(ii.sets)
0241             pls = [pls plist];
0242           end
0243           ii.plists = pls;
0244           % Check we have one set description per plist
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 % End of constructor
0258   end % End public methods
0259 
0260   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0261   %                              Methods (public)                             %
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   %                              Methods (protected)                          %
0273   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0274 
0275   methods (Access = protected)
0276   end
0277 
0278   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0279   %                          Methods (Static, Public)                         %
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   %                          Methods (Static, Private)                        %
0311   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0312 
0313   methods (Static = true, Access = private)
0314   end
0315 
0316 end
0317 
0318 % END

Generated on Mon 25-Aug-2008 22:39:29 by m2html © 2003