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.16 2007/12/12 18:45:08 ingo 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.16 2007/12/12 18:45:08 ingo Exp $
0023 %
0024 % HISTORY:     30-01-2007 M Hewitson
0025 %                 Creation
0026 %
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 
0029 VERSION  = '$Id: param.m,v 1.16 2007/12/12 18:45:08 ingo Exp $';
0030 
0031 % Handle 'Params' call or 'Version' call
0032 if nargin == 2 && ischar(varargin{2}) && strcmp(varargin{2}, 'Params')
0033   p = plist();
0034   return
0035 elseif nargin == 2 && ischar(varargin{2}) && strcmp(varargin{2}, 'Version')
0036   p = VERSION;
0037   return
0038 end
0039 
0040 
0041 %%%%%%%%%%%%%%%%%%%%%%%%   define parameter properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0042 
0043   function p = init()
0044     p.name    = 'param object';
0045     p.key     = '';
0046     p.val     = [];
0047     p.created = time;
0048     p.version = VERSION;
0049     p = class(p, 'param');
0050   end
0051 
0052 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create parameter object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0053 
0054 %%%%%%%%%%  p = param()   %%%%%%%%%%
0055 % create default parameter object
0056 if nargin == 0
0057 
0058   p = init();
0059 
0060 elseif nargin == 1
0061 
0062   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0063   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0064     p = fromxml(varargin{1});
0065 
0066   %%%%%%%%%%  p = param(plist)   %%%%%%%%%%
0067   elseif isa(varargin{1}, 'param')
0068     p = varargin{1};
0069 
0070   %%%%%%%%%%  p = param(plist)   %%%%%%%%%%
0071   elseif isa(varargin{1}, 'plist')
0072 
0073     pl = varargin{1};
0074     key = upper(find(pl, 'key'));
0075     val =       find(pl, 'val');
0076     if isempty(key)
0077       error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0078     end
0079     if isempty(val)
0080       error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0081     end
0082 
0083     p      = init();
0084     p.key  = key;
0085     p.val  = val;
0086     p.name = p.key;
0087 
0088     %%%%%%%%%%  p = param(struct)   %%%%%%%%%%
0089   elseif isstruct(varargin{1})
0090 
0091     p         = init();
0092     p.name    =       varargin{1}.name;
0093     p.key     = upper(varargin{1}.key);
0094     p.val     =       varargin{1}.val;
0095     if isstruct(varargin{1}.created)
0096       varargin{1}.created = time(varargin{1}.created);
0097     end
0098     p.version = varargin{1}.version;
0099 
0100   elseif ischar(varargin{1})
0101 
0102     filename = varargin{1};
0103     [path, name, ext, vers] = fileparts(filename);
0104     switch ext
0105       case '.mat'
0106         p = load(filename);
0107         p = p.a;
0108       case '.xml'
0109         p = xmlparse(param, filename);
0110       otherwise
0111         error('### Unknown file type.');
0112     end
0113 
0114   else
0115     error('### unknown constructor type for param object.');
0116   end
0117 elseif nargin == 2
0118 
0119   if isa(varargin{1}, 'database')
0120 
0121     p = retrieve(varargin{1}, varargin{2:end});
0122 
0123   %%%%%%%%%%  p = param(key, value)   %%%%%%%%%%
0124   else
0125     p         = init();
0126     p.key     = upper(varargin{1});
0127     p.val     =       varargin{2};
0128     p.name    = p.key;
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 Tue 22-Jan-2008 10:39:13 by m2html © 2003