Home > classes > @plist > plist.m

plist

PURPOSE ^

PLIST Plist class object constructor.

SYNOPSIS ^

function pl = plist(varargin)

DESCRIPTION ^

 PLIST Plist class object constructor.

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

 DESCRIPTION: PLIST Plist class object constructor.

 CONSTRUCTORS:

       pl = plist()                            - create an empty plist object.
       pl = plist(p)                           - create a plist with elements p
                                                 where p is an array of param objects.
       pl = plist('key1, val1, 'key2', 'val2') - create a plist with the
                                                 key/values pairs

 VERSION:     $Id: plist.m,v 1.9 2007/08/31 17:40:09 hewitson Exp $

 HISTORY:     30-01-07 M Hewitson
                Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function pl = plist(varargin)
0002 % PLIST Plist class object constructor.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: PLIST Plist class object constructor.
0007 %
0008 % CONSTRUCTORS:
0009 %
0010 %       pl = plist()                            - create an empty plist object.
0011 %       pl = plist(p)                           - create a plist with elements p
0012 %                                                 where p is an array of param objects.
0013 %       pl = plist('key1, val1, 'key2', 'val2') - create a plist with the
0014 %                                                 key/values pairs
0015 %
0016 % VERSION:     $Id: plist.m,v 1.9 2007/08/31 17:40:09 hewitson Exp $
0017 %
0018 % HISTORY:     30-01-07 M Hewitson
0019 %                Creation
0020 %
0021 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0022 
0023 VERSION  = '$Id: plist.m,v 1.9 2007/08/31 17:40:09 hewitson Exp $';
0024 
0025 %%%%%%%%%%%%%%%%%%%%   define parameter properties list   %%%%%%%%%%%%%%%%%%%%%
0026 
0027   function pl = init()
0028     pl.params   = [];
0029     pl.version  = VERSION;
0030     pl = class(pl, 'plist');
0031   end
0032 
0033 %%%%%%%%%%%%%%%%%%%%%%   Create parameter list object   %%%%%%%%%%%%%%%%%%%%%%%
0034 
0035 %%%%%%%%%%   pl = plist()   %%%%%%%%%%
0036 % create default parameter list object
0037 if nargin == 0
0038 
0039   pl = init();
0040 
0041 elseif nargin == 1
0042 
0043   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0044   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0045     pl = fromxml(varargin{1});
0046 
0047   %%%%%%%%%%   pl = plist(struct)   %%%%%%%%%%
0048   elseif isstruct(varargin{1})
0049     plstruct = varargin{1};
0050     pi = plstruct.params;
0051     params = [];
0052     for j=1:length(pi)
0053       if isstruct(pi(j))
0054         params = [params param(pi(j))];
0055       elseif isa(pi(j), 'param')
0056         params = [params pi(j)];
0057       else
0058         error ('### the parameter is not from class param.')
0059       end
0060     end
0061 
0062     pl         = init();
0063     pl.params  = params;
0064     pl.version = plstruct.version;
0065 
0066   %%%%%%%%%%% From file %%%%%%%%%%%%%%%%%%%%%%%%
0067   elseif ischar(varargin{1})
0068 
0069     filename = varargin{1};
0070     [path, name, ext, vers] = fileparts(filename);
0071     switch ext
0072       case '.mat'
0073         pl = load(filename);
0074       case '.xml'
0075         pl = xmlparse(plist, filename);
0076       otherwise
0077         error('### Unknown file type.');
0078     end
0079   %%%%%%%%%%   pl = plist(param)   %%%%%%%%%%
0080   elseif isa(varargin{1}, 'param')
0081     pl        = init();
0082     pl.params = varargin{1};
0083 
0084   else
0085     error ('### unknown arguments to construct a parameter list')
0086   end
0087 elseif nargin == 2
0088   %%%%%%%%%%% From DATABASE
0089   if isa(varargin{1}, 'database')
0090     
0091     pl = retrieve(varargin{1}, varargin{2:end});
0092     
0093   else
0094     pl         = init();
0095     pl.params  = param(varargin{1}, varargin{2});
0096   end
0097   
0098 elseif nargin > 1
0099 
0100   %%%%%%%%%%   pl = plist('key1, val1, 'key2', 'val2')   %%%%%%%%%%
0101   params = [];
0102   argin  = varargin;
0103   while length(argin) >= 2
0104     key = argin{1};
0105     val = argin{2};
0106     argin = argin(3:end);
0107 
0108     if ~ischar(key)
0109       error('### the key ''%s'' must be a character string', key)
0110     end
0111 
0112     params = [params param(key, val)];
0113   end
0114 
0115   pl         = init();
0116   pl.params  = params;
0117 
0118 else
0119   error('### Unknown number of constructor arguments.');
0120 end
0121 
0122 end
0123 
0124 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003