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.12 2007/10/15 17:16:56 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.12 2007/10/15 17:16:56 ingo Exp $
0023 %
0024 % HISTORY:     30-01-2007 M Hewitson
0025 %                 Creation
0026 %
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 
0029 VERSION  = '$Id: param.m,v 1.12 2007/10/15 17:16:56 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}, 'plist')
0068 
0069     pl = varargin{1};
0070     key = find(pl, 'key');
0071     val = find(pl, 'val');
0072     if isempty(key)
0073       error('### building a parameter from a plist requires one parameter in the plist is called ''key''');
0074     end
0075     if isempty(val)
0076       error('### building a parameter from a plist requires one parameter in the plist is called ''val''');
0077     end
0078 
0079     p      = init();
0080     p.key  = key;
0081     p.val  = val;
0082     p.name = p.key;
0083 
0084     %%%%%%%%%%  p = param(struct)   %%%%%%%%%%
0085   elseif isstruct(varargin{1})
0086 
0087     p         = init();
0088     p.name    = varargin{1}.name;
0089     p.key     = varargin{1}.key;
0090     p.val     = varargin{1}.val;
0091     if isstruct(varargin{1}.created)
0092       varargin{1}.created = time(varargin{1}.created);
0093     end
0094     p.version = varargin{1}.version;
0095 
0096   elseif ischar(varargin{1})
0097 
0098     filename = varargin{1};
0099     [path, name, ext, vers] = fileparts(filename);
0100     switch ext
0101       case '.mat'
0102         p = load(filename);
0103       case '.xml'
0104         p = xmlparse(param, filename);
0105       otherwise
0106         error('### Unknown file type.');
0107     end
0108 
0109   else
0110     error('### unknown constructor type for param object.');
0111   end
0112 elseif nargin == 2
0113 
0114   if isa(varargin{1}, 'plist') || isa(varargin{2}, 'plist')
0115     if isa(varargin{1}, 'plist')
0116       pl = varargin{1};
0117       pi  = pl(1);
0118       key = pi.key;
0119     else
0120       val = varargin{1};
0121     end
0122 
0123     if isa(varargin{2}, 'plist')
0124       pl = varargin{2};
0125       pi  = pl(1);
0126       key = pi.key;
0127     else
0128       val = varargin{2};
0129     end
0130 
0131     p.key     = key;
0132     p.val     = val;
0133     p.version = VERSION;
0134     p = class(p, 'param');
0135 
0136   %%%%%%%%%%% From DATABASE
0137   elseif isa(varargin{1}, 'database')
0138 
0139     p = retrieve(varargin{1}, varargin{2:end});
0140 
0141   %%%%%%%%%%  p = param(key, value)   %%%%%%%%%%
0142   else
0143     p         = init();
0144     p.key     = varargin{1};
0145     p.val     = varargin{2};
0146     p.name    = p.key;
0147   end
0148 else
0149   error('### Unknown number of constructor arguments.');
0150 end
0151 
0152 end % function p = param(varargin)
0153 
0154 
0155 
0156 
0157

Generated on Thu 01-Nov-2007 09:42:34 by m2html © 2003