Home > classes > @plist > set.m

set

PURPOSE ^

SET set parameter list properties.

SYNOPSIS ^

function pl = set(pl, varargin)

DESCRIPTION ^

 SET set parameter list properties.

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

 DESCRIPTION: SET set parameter list properties.

 CALL: pl = set(pl,   key,      val);
       pl = set(pl, 'name',    'my name');
       pl = set(pl, 'params',   p);
       pl = set(pl, 'version', 'plist/set.m,v 1.7...');
       pl = set(pl, 'created',  time-object);

 VERSION: $Id: set.m,v 1.9 2007/10/15 17:16:56 ingo Exp $

 HISTORY: 30-01-07 M Hewitson
             Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function pl = set(pl, varargin)
0002 % SET set parameter list properties.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: SET set parameter list properties.
0007 %
0008 % CALL: pl = set(pl,   key,      val);
0009 %       pl = set(pl, 'name',    'my name');
0010 %       pl = set(pl, 'params',   p);
0011 %       pl = set(pl, 'version', 'plist/set.m,v 1.7...');
0012 %       pl = set(pl, 'created',  time-object);
0013 %
0014 % VERSION: $Id: set.m,v 1.9 2007/10/15 17:16:56 ingo Exp $
0015 %
0016 % HISTORY: 30-01-07 M Hewitson
0017 %             Creation
0018 %
0019 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0020 
0021 VERSION = '$Id: set.m,v 1.9 2007/10/15 17:16:56 ingo Exp $';
0022 
0023 % Check if this is a call for parameters or for the cvs-version number
0024 if nargin == 2
0025   if isa(pl, 'plist') && ischar(varargin{1})
0026     in = varargin{1};
0027     if strcmp(in, 'Params')
0028       val = plist();
0029       return
0030     elseif strcmp(in, 'Version')
0031       val = VERSION;
0032       return
0033     end
0034   end
0035 end
0036 
0037 if (nargout ~= 0)
0038 
0039   propArgin = varargin;
0040 
0041   while length(propArgin) >= 2
0042     prop = propArgin{1};
0043     val  = propArgin{2};
0044     propArgin = propArgin(3:end);
0045     switch prop
0046       case 'params'
0047         pl.params = val;
0048       case 'version'
0049         pl.version = val;
0050       case 'name'
0051         pl.name = val;
0052       case 'created'
0053         if isa(val, 'time')
0054           pl.created = val;
0055         else
0056           error('### The property ''created'' must be a time-object');
0057         end
0058       otherwise  % pl = set(pl, key, val)
0059         % check to see if this is one of the parameters we can set, otherwise
0060         % add it
0061         params = pl.params;
0062         plo    = plist();
0063         found = 0;
0064         for j=1:length(params)
0065           p = params(j);
0066           if strcmp(p.key, prop)
0067             plo = append(plo, param(prop, val));
0068             found = 1;
0069           else
0070             plo = append(plo, p);
0071           end
0072         end
0073         % add this parameter if necessary
0074         if ~found
0075           plo = append(plo, param(prop, val));
0076         end
0077         pl = plo;
0078     end
0079   end
0080 
0081 else
0082   if ischar(varargin{2})
0083     error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0084                         inputname(1), ...
0085                         inputname(1), ...
0086                         varargin{1},  ...
0087                         varargin{2});
0088   elseif isnumeric(varargin{2})
0089     error('### please use: %s = set(%s, ''%s'', %d);', ...
0090                         inputname(1), ...
0091                         inputname(1), ...
0092                         varargin{1},  ...
0093                         varargin{2});
0094   else
0095     error('### please use: %s = set(%s, key, ''value'');', ...
0096                         inputname(1), ...
0097                         inputname(1));
0098   end
0099 end
0100 
0101 % END

Generated on Fri 02-Nov-2007 19:39:27 by m2html © 2003