Home > classes > @param > param.m

param

PURPOSE ^

PARAM Parameter object class constructor.

SYNOPSIS ^

function p = param(varargin)

DESCRIPTION ^

 PARAM Parameter object class constructor.

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

 DESCRIPTION: PARAM Parameter object class constructor.
              Create a parameter object.

 CONSTRUCTOR: p = param();             - creates an empty parameter

              p = param(pl)            - creates a parameter from a
                                         parameter list with the parameters:
                                         - 'key' and 'val', or
                                         - 'filename'

              p = param(filename)      - load a parameter from file

              p = param('name', val)   - creates a numeric parameter

              p = param('name', 'val') - creates a string parameter

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

 HISTORY:     30-01-2007 M Hewitson
                 Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function p = param(varargin)
0002 % PARAM Parameter object class constructor.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: PARAM Parameter object class constructor.
0007 %              Create a parameter object.
0008 %
0009 % CONSTRUCTOR: p = param();             - creates an empty parameter
0010 %
0011 %              p = param(pl)            - creates a parameter from a
0012 %                                         parameter list with the parameters:
0013 %                                         - 'key' and 'val', or
0014 %                                         - 'filename'
0015 %
0016 %              p = param(filename)      - load a parameter from file
0017 %
0018 %              p = param('name', val)   - creates a numeric parameter
0019 %
0020 %              p = param('name', 'val') - creates a string parameter
0021 %
0022 % VERSION:     $Id: param.m,v 1.9 2007/08/31 17:40:08 hewitson Exp $
0023 %
0024 % HISTORY:     30-01-2007 M Hewitson
0025 %                 Creation
0026 %
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 
0029 VERSION  = '$Id: param.m,v 1.9 2007/08/31 17:40:08 hewitson Exp $';
0030 
0031 %%%%%%%%%%%%%%%%%%%%%%%%   define parameter properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0032 
0033   function p = init()
0034     p.key     = '';
0035     p.val     = [];
0036     p.version = VERSION;
0037     p = class(p, 'param');
0038   end
0039 
0040 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create parameter object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0041 
0042 %%%%%%%%%%  p = param()   %%%%%%%%%%
0043 % create default parameter object
0044 if nargin == 0
0045 
0046   p = init();
0047 
0048 elseif nargin == 1
0049 
0050   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0051   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0052     p = fromxml(varargin{1});
0053     
0054   %%%%%%%%%%  p = param(plist)   %%%%%%%%%%
0055   elseif isa(varargin{1}, 'plist')
0056 
0057     pl = varargin{1};
0058     key = find(pl, 'key');
0059     val = find(pl, 'val');
0060     if isempty(key)
0061       error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0062     end
0063     if isempty(val)
0064       error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0065     end
0066 
0067     p     = init();
0068     p.key = key;
0069     p.val = val;
0070 
0071     %%%%%%%%%%  p = param(struct)   %%%%%%%%%%
0072   elseif isstruct(varargin{1})
0073 
0074     p         = init();
0075     p.key     = varargin{1}.key;
0076     p.val     = varargin{1}.val;
0077     p.version = varargin{1}.version;
0078 
0079   elseif ischar(varargin{1})
0080 
0081     filename = varargin{1};
0082     [path, name, ext, vers] = fileparts(filename);
0083     switch ext
0084       case '.mat'
0085         p = load(filename);
0086       case '.xml'
0087         p = xmlparse(param, filename);
0088       otherwise
0089         error('### Unknown file type.');
0090     end
0091 
0092   else
0093     error('### unknown constructor type for param object.');
0094   end
0095 elseif nargin == 2
0096 
0097   if isa(varargin{1}, 'plist') || isa(varargin{2}, 'plist')
0098     if isa(varargin{1}, 'plist')
0099       pl = varargin{1};
0100       pi  = pl(1);
0101       key = pi.key;
0102     else
0103       val = varargin{1};
0104     end
0105 
0106     if isa(varargin{2}, 'plist')
0107       pl = varargin{2};
0108       pi  = pl(1);
0109       key = pi.key;
0110     else
0111       val = varargin{2};
0112     end
0113 
0114     p.key     = key;
0115     p.val     = val;
0116     p.version = VERSION;
0117     p = class(p, 'param');
0118 
0119   %%%%%%%%%%% From DATABASE
0120   elseif isa(varargin{1}, 'database')
0121     
0122     p = retrieve(varargin{1}, varargin{2:end});
0123     
0124   %%%%%%%%%%  p = param(key, value)   %%%%%%%%%%
0125   else
0126     p         = init();
0127     p.key     = varargin{1};
0128     p.val     = varargin{2};
0129   end
0130 else
0131   error('### Unknown number of constructor arguments.');
0132 end
0133 
0134 end % function p = param(varargin)
0135 
0136 
0137 
0138 
0139

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