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.m,v 1.19 2008/02/13 10:13:53 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 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.m,v 1.19 2008/02/13 10:13:53 ingo Exp $
0027 %
0028 % HISTORY: 30-01-2007 M Hewitson
0029 %             Creation
0030 %
0031 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0032 
0033 VERSION  = '$Id: history.m,v 1.19 2008/02/13 10:13:53 ingo 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()
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();
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();
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   else
0125     h = varargin{1};
0126     h.consver = VERSION;
0127   end
0128 
0129 %%%%%%%%%%  h = history(name, version)   %%%%%%%%%%
0130 elseif nargin == 2
0131   %%%%%%%%%%% Database
0132   if isa(varargin{1}, 'database')
0133     h = retrieve(varargin{1}, varargin{2:end});
0134   else
0135     h         = init();
0136     h.name    = varargin{1};
0137     h.version = varargin{2};
0138   end
0139 
0140 %%%%%%%%%%  h = history(name, version, plist)   %%%%%%%%%%
0141 elseif nargin == 3
0142   if isempty(varargin{3})
0143     varargin{3} = plist();
0144   end
0145 
0146   h         = init();
0147   h.name    = varargin{1};
0148   h.version = varargin{2};
0149   h.plist   = varargin{3};
0150 
0151 %%%%%%%%%%  h = history(name, version, plist, history)   %%%%%%%%%%
0152 elseif nargin == 4
0153   if isempty(varargin{3})
0154     varargin{3} = plist();
0155   end
0156 
0157   h         = init();
0158   h.name    = varargin{1};
0159   h.version = varargin{2};
0160   h.plist   = varargin{3};
0161   h.inhists = varargin{4};
0162 
0163 else
0164   error('### Unknown number of constructor arguments.');
0165 end
0166 
0167 end

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