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.19 2008/02/13 17:33:38 mauro 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.19 2008/02/13 17:33:38 mauro Exp $
0023 %
0024 % HISTORY:     30-01-2007 M Hewitson
0025 %                 Creation
0026 %
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 
0029 VERSION  = '$Id: param.m,v 1.19 2008/02/13 17:33:38 mauro 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()
0053     p.name    = 'param object';
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();
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     pl = varargin{1};
0079     key = upper(find(pl, 'key'));
0080     val =       find(pl, 'val');
0081     if isempty(key)
0082       error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0083     end
0084     if isempty(val)
0085       error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0086     end
0087 
0088     p      = init();
0089     p.key  = key;
0090     p.val  = val;
0091     p.name = p.key;
0092 
0093     %%%%%%%%%%  p = param(struct)   %%%%%%%%%%
0094   elseif isstruct(varargin{1})
0095 
0096     p         = init();
0097     p.name    =       varargin{1}.name;
0098     p.key     = upper(varargin{1}.key);
0099     p.val     =       varargin{1}.val;
0100     if isstruct(varargin{1}.created)
0101       p.created = time(varargin{1}.created);
0102     end
0103     if isa(varargin{1}.created, 'time')
0104       p.created = varargin{1}.created;
0105     end
0106     p.version = varargin{1}.version;
0107 
0108   elseif ischar(varargin{1})
0109 
0110     filename = varargin{1};
0111     [path, name, ext, vers] = fileparts(filename);
0112     switch ext
0113       case '.mat'
0114         p = load(filename);
0115         p = p.a;
0116       case '.xml'
0117         root_node = xmlread(filename);
0118         p = ltpda_xmlread(root_node, 'param');
0119       otherwise
0120         error('### Unknown file type.');
0121     end
0122 
0123   else
0124     error('### unknown constructor type for param object.');
0125   end
0126 elseif nargin == 2
0127 
0128   if isa(varargin{1}, 'database')
0129 
0130     p = retrieve(varargin{1}, varargin{2:end});
0131 
0132   %%%%%%%%%%  p = param(key, value)   %%%%%%%%%%
0133   else
0134     p         = init();
0135     p.key     = upper(varargin{1});
0136     p.val     =       varargin{2};
0137     p.name    = p.key;
0138   end
0139 else
0140   error('### Unknown number of constructor arguments.');
0141 end
0142 
0143 end % function p = param(varargin)
0144 
0145 
0146 
0147 
0148

Generated on Fri 07-Mar-2008 15:46:43 by m2html © 2003