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.html,v 1.14 2008/03/31 10:27:38 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.html,v 1.14 2008/03/31 10:27:38 hewitson Exp $
0023 %
0024 % HISTORY:     30-01-2007 M Hewitson
0025 %                 Creation
0026 %
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 
0029 VERSION  = '$Id: param.html,v 1.14 2008/03/31 10:27:38 hewitson Exp $';
0030 CATEGORY = 'Constructor';
0031 
0032 % Check if this is a call for parameters
0033 if nargin == 2
0034   if isa(varargin{1}, 'param') && ischar(varargin{2})
0035     in = char(varargin{2});
0036     if strcmp(in, 'Params')
0037       p = plist();
0038       return
0039     elseif strcmp(in, 'Version')
0040       p = VERSION;
0041       return
0042     elseif strcmp(in, 'Category')
0043       p = CATEGORY;
0044       return
0045     end
0046   end
0047 end
0048 
0049 
0050 %%%%%%%%%%%%%%%%%%%%%%%%   define parameter properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0051 
0052   function p = init(version)
0053     p.name    = 'None';
0054     p.key     = '';
0055     p.val     = [];
0056     p.created = time;
0057     p.version = version;
0058     p = class(p, 'param');
0059   end
0060 
0061 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create parameter object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0062 
0063 %%%%%%%%%%  p = param()   %%%%%%%%%%
0064 % create default parameter object
0065 if nargin == 0
0066 
0067   p = init(VERSION);
0068 
0069 elseif nargin == 1
0070 
0071   %%%%%%%%%%  p = param(plist)   %%%%%%%%%%
0072   if isa(varargin{1}, 'param')
0073     p = varargin{1};
0074 
0075   %%%%%%%%%%  p = param(plist)   %%%%%%%%%%
0076   elseif isa(varargin{1}, 'plist')
0077 
0078     %% is the plist is empty then return an empty param object
0079     if nparams(varargin{1}) == 0
0080       p = init(VERSION);
0081     else
0082       pl = varargin{1};
0083       key = upper(find(pl, 'key'));
0084       val =       find(pl, 'val');
0085       if isempty(key)
0086         error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0087       end
0088       if isempty(val)
0089         error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0090       end
0091 
0092       p      = init(VERSION);
0093       p.key  = key;
0094       p.val  = val;
0095       p.name = p.key;
0096     end
0097 
0098     %%%%%%%%%%  p = param(struct)   %%%%%%%%%%
0099   elseif isstruct(varargin{1})
0100 
0101     p         = init(VERSION);
0102     p.name    =       varargin{1}.name;
0103     p.key     = upper(varargin{1}.key);
0104     p.val     =       varargin{1}.val;
0105     if isstruct(varargin{1}.created)
0106       p.created = time(varargin{1}.created);
0107     end
0108     if isa(varargin{1}.created, 'time')
0109       p.created = varargin{1}.created;
0110     end
0111     p.version = varargin{1}.version;
0112 
0113   elseif ischar(varargin{1})
0114 
0115     filename = varargin{1};
0116     [path, name, ext, vers] = fileparts(filename);
0117     switch ext
0118       case '.mat'
0119         p = load(filename);
0120         p = p.a;
0121       case '.xml'
0122         root_node = xmlread(filename);
0123         p = ltpda_xmlread(root_node, 'param');
0124       otherwise
0125         error('### Unknown file type.');
0126     end
0127 
0128   else
0129     error('### unknown constructor type for param object.');
0130   end
0131 elseif nargin == 2
0132 
0133   if isa(varargin{1}, 'database')
0134 
0135     p = retrieve(varargin{1}, varargin{2:end});
0136 
0137   %%%%%%%%%%  p = param(key, value)   %%%%%%%%%%
0138   else
0139     p         = init(VERSION);
0140     p.key     = upper(varargin{1});
0141     p.val     =       varargin{2};
0142     p.name    = p.key;
0143   end
0144 else
0145   error('### Unknown number of constructor arguments.');
0146 end
0147 
0148 end % function p = param(varargin)
0149 
0150 
0151 
0152 
0153

Generated on Mon 31-Mar-2008 12:20:24 by m2html © 2003