0001 function p = param(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 ALGONAME = mfilename;
0015 VERSION = '$Id: param.html,v 1.1 2007/06/08 14:15:06 hewitson Exp $';
0016
0017 if nargin == 0
0018 p.key = '';
0019 p.val = [];
0020 p.version = VERSION;
0021 p = class(p, 'param');
0022 elseif nargin == 1
0023 if isa(varargin{1}, 'plist')
0024 pl = varargin{1};
0025 key = find(pl, 'key');
0026 val = find(pl, 'val');
0027 if isempty(key)
0028 error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0029 end
0030 if isempty(val)
0031 error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0032 end
0033 p.key = key;
0034 p.val = val;
0035 p.version = VERSION;
0036 p = class(p, 'param');
0037 elseif isstruct(varargin{1})
0038
0039 p = class(varargin{1}, 'param');
0040
0041 else
0042 error('### unknown constructor type for param object.');
0043 end
0044 elseif nargin == 2
0045
0046 if isa(varargin{1}, 'plist') || isa(varargin{2}, 'plist')
0047 if isa(varargin{1}, 'plist')
0048 pl = varargin{1};
0049 pi = pl(1);
0050 key = pi.key;
0051 else
0052 val = varargin{1};
0053 end
0054
0055 if isa(varargin{2}, 'plist')
0056 pl = varargin{2};
0057 pi = pl(1);
0058 key = pi.key;
0059 else
0060 val = varargin{2};
0061 end
0062
0063 p.key = key;
0064 p.val = val;
0065 p.version = VERSION;
0066 p = class(p, 'param');
0067
0068 else
0069 p.key = varargin{1};
0070 p.val = varargin{2};
0071 p.version = VERSION;
0072 p = class(p, 'param');
0073 end
0074 else
0075 error('### Unknown number of constructor arguments.');
0076 end
0077