0001 function pl = set(pl, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 VERSION = '$Id: set.m,v 1.9 2007/10/15 17:16:56 ingo Exp $';
0022
0023
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
0059
0060
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
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