Home > classes > @history > history.m

history

PURPOSE ^

HISTORY History object class constructor.

SYNOPSIS ^

function h = history(varargin)

DESCRIPTION ^

 HISTORY History object class constructor.

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

 DESCRIPTION: HISTORY History object class constructor.
              Create a history object.

 CONSTRUCTOR: h = history()
                  creates a blank history object

              h = history('name', 'version')
                  creates a history object with this name and version

              h = history('name', 'version', plist)
                  creates a history object with this name,
                  version and parameter list.

              h = history('name', 'version', plist, hi)
                  creates a history object with this name, version,
                  parameter list, and vector of input history objects.

              h = history(hi)
                  creates a new history object from the history object hi

 VERSION: $Id: history.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 h = history(varargin)
0002 % HISTORY History object class constructor.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: HISTORY History object class constructor.
0007 %              Create a history object.
0008 %
0009 % CONSTRUCTOR: h = history()
0010 %                  creates a blank history object
0011 %
0012 %              h = history('name', 'version')
0013 %                  creates a history object with this name and version
0014 %
0015 %              h = history('name', 'version', plist)
0016 %                  creates a history object with this name,
0017 %                  version and parameter list.
0018 %
0019 %              h = history('name', 'version', plist, hi)
0020 %                  creates a history object with this name, version,
0021 %                  parameter list, and vector of input history objects.
0022 %
0023 %              h = history(hi)
0024 %                  creates a new history object from the history object hi
0025 %
0026 % VERSION: $Id: history.html,v 1.14 2008/03/31 10:27:38 hewitson Exp $
0027 %
0028 % HISTORY: 30-01-2007 M Hewitson
0029 %             Creation
0030 %
0031 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0032 
0033 VERSION  = '$Id: history.html,v 1.14 2008/03/31 10:27:38 hewitson Exp $';
0034 CATEGORY = 'Constructor';
0035 
0036 %%%%%   Is this a 'Params' call?     %%%%%
0037 if  nargin == 2 && isa(varargin{1}, 'history') && ischar(varargin{2})
0038   if strcmp(varargin{2}, 'Params')
0039     h = plist();
0040     return
0041   elseif strcmp(varargin{2}, 'Version')
0042     h = VERSION;
0043     return
0044   elseif strcmp(varargin{2}, 'Category')
0045     h = CATEGORY;
0046     return
0047   end
0048 end
0049 
0050 %%%%%%%%%%%%%%%%%%%%%%%%   define history properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0051 
0052   function h = init(version)
0053     h.name    = 'None';
0054     h.version = version;
0055     h.plist   = plist();
0056     h.inhists = [];
0057     h.invars  = {};
0058     h.n       = -1;
0059     h.pn      = -1;
0060     h.created = time;
0061     h.consver = version;
0062     h = class(h, 'history');
0063   end
0064 
0065 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create history object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0066 
0067 %%%%%%%%%%  h = history()   %%%%%%%%%%
0068 % create default history object
0069 if nargin == 0
0070 
0071   h = init(VERSION);
0072 
0073 elseif nargin == 1
0074 
0075   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0076   if ischar(varargin{1})
0077 
0078     filename = varargin{1};
0079     [path, name, ext, vers] = fileparts(filename);
0080     switch ext
0081       case '.mat'
0082         h = load(filename);
0083         h = h.a;
0084       case '.xml'
0085         root_node = xmlread(filename);
0086         h = ltpda_xmlread(root_node, 'history');
0087       otherwise
0088         error('### Unknown file type.');
0089     end
0090   %%%%%%%%%%  h = history(struct)   %%%%%%%%%%
0091   elseif isstruct(varargin{1})
0092 
0093     h = init(VERSION);
0094 
0095     hstruct = varargin{1};
0096     h.name    = hstruct.name;
0097     h.version = hstruct.version;
0098     pl = hstruct.plist;
0099     if isstruct(pl)
0100       pl = plist(pl);
0101     end
0102     h.plist   = pl;
0103     inh = hstruct.inhists;
0104     inhists = [];
0105     for j=1:length(inh)
0106       if isstruct(inh(j))
0107         inhists = [inhists history(inh(j))];
0108       else
0109         inhists = [inhists inh(j)];
0110       end
0111     end
0112     h.inhists = inhists;
0113     h.invars  = hstruct.invars;
0114     h.n       = hstruct.n;
0115     h.pn      = hstruct.pn;
0116     created   = hstruct.created;
0117     if isstruct(created)
0118       created = time(created);
0119     end
0120     h.created     = created;
0121     h.consver = hstruct.consver;
0122 
0123   %%%%%%%%%%  h = history(history)   %%%%%%%%%%
0124   elseif isa(varargin{1}, 'history')
0125     h = varargin{1};
0126     h.consver = VERSION;
0127 
0128   %%%%%%%%%%  h = history(plist)   %%%%%%%%%%
0129   elseif isa(varargin{1}, 'plist')
0130     %% is the plist is empty then return an empty history object
0131     if nparams(varargin{1}) == 0
0132       h = init(VERSION);
0133       h.plist = varargin{1};
0134     else
0135       error('### Unknown history constructor method.');
0136     end
0137 
0138   else
0139     error('### Unknown history constructor method.');
0140   end
0141 
0142 %%%%%%%%%%  h = history(name, version)   %%%%%%%%%%
0143 elseif nargin == 2
0144   %%%%%%%%%%% Database
0145   if isa(varargin{1}, 'database')
0146     h = retrieve(varargin{1}, varargin{2:end});
0147   else
0148     h         = init(VERSION);
0149     h.name    = varargin{1};
0150     h.version = varargin{2};
0151   end
0152 
0153 %%%%%%%%%%  h = history(name, version, plist)   %%%%%%%%%%
0154 elseif nargin == 3
0155   if isempty(varargin{3})
0156     varargin{3} = plist();
0157   end
0158 
0159   h         = init(VERSION);
0160   h.name    = varargin{1};
0161   h.version = varargin{2};
0162   h.plist   = varargin{3};
0163 
0164 %%%%%%%%%%  h = history(name, version, plist, history)   %%%%%%%%%%
0165 elseif nargin == 4
0166   if isempty(varargin{3})
0167     varargin{3} = plist();
0168   end
0169 
0170   h         = init(VERSION);
0171   h.name    = varargin{1};
0172   h.version = varargin{2};
0173   h.plist   = varargin{3};
0174   h.inhists = varargin{4};
0175 
0176 else
0177   error('### Unknown number of constructor arguments.');
0178 end
0179 
0180 end

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