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.17 2007/12/05 16:26:22 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.17 2007/12/05 16:26:22 ingo Exp $
0027 %
0028 % HISTORY: 30-01-2007 M Hewitson
0029 %             Creation
0030 %
0031 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0032 
0033 VERSION  = '$Id: history.m,v 1.17 2007/12/05 16:26:22 ingo Exp $';
0034 
0035 %%%%%   Is this a 'Params' call?     %%%%%
0036 if  nargin == 2 && isa(varargin{1}, 'history') && ischar(varargin{2})
0037   if strcmp(varargin{2}, 'Params')
0038     h = plist();
0039     return
0040   elseif strcmp(varargin{2}, 'Version')
0041     h = VERSION;
0042     return
0043   end
0044 end
0045 
0046 %%%%%%%%%%%%%%%%%%%%%%%%   define history properties   %%%%%%%%%%%%%%%%%%%%%%%%%
0047 
0048   function h = init()
0049     h.name    = 'None';
0050     h.version = VERSION;
0051     h.plist   = plist();
0052     h.inhists = [];
0053     h.invars  = {};
0054     h.n       = -1;
0055     h.pn      = -1;
0056     h.created = time;
0057     h.consver = VERSION;
0058     h = class(h, 'history');
0059   end
0060 
0061 %%%%%%%%%%%%%%%%%%%%%%%%%%   Create history object   %%%%%%%%%%%%%%%%%%%%%%%%%%%
0062 
0063 %%%%%%%%%%  h = history()   %%%%%%%%%%
0064 % create default history object
0065 if nargin == 0
0066 
0067   h = init();
0068 
0069 elseif nargin == 1
0070 
0071   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0072   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0073     h = fromxml(varargin{1});
0074   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0075   elseif ischar(varargin{1})
0076 
0077     filename = varargin{1};
0078     [path, name, ext, vers] = fileparts(filename);
0079     switch ext
0080       case '.mat'
0081         h = load(filename);
0082         h = h.a;
0083       case '.xml'
0084         h = xmlparse(history, filename);
0085       otherwise
0086         error('### Unknown file type.');
0087     end
0088   %%%%%%%%%%  h = history(struct)   %%%%%%%%%%
0089   elseif isstruct(varargin{1})
0090 
0091     h = init();
0092 
0093     hstruct = varargin{1};
0094     h.name    = hstruct.name;
0095     h.version = hstruct.version;
0096     pl = hstruct.plist;
0097     if isstruct(pl)
0098       pl = plist(pl);
0099     end
0100     h.plist   = pl;
0101     inh = hstruct.inhists;
0102     inhists = [];
0103     for j=1:length(inh)
0104       if isstruct(inh(j))
0105         inhists = [inhists history(inh(j))];
0106       else
0107         inhists = [inhists inh(j)];
0108       end
0109     end
0110     h.inhists = inhists;
0111     h.invars  = hstruct.invars;
0112     h.n       = hstruct.n;
0113     h.pn      = hstruct.pn;
0114     created   = hstruct.created;
0115     if isstruct(created)
0116       created = time(created);
0117     end
0118     h.created     = created;
0119     h.consver = hstruct.consver;
0120 
0121   %%%%%%%%%%  h = history(history)   %%%%%%%%%%
0122   else
0123     h = varargin{1};
0124     h.consver = VERSION;
0125   end
0126 
0127 %%%%%%%%%%  h = history(name, version)   %%%%%%%%%%
0128 elseif nargin == 2
0129   %%%%%%%%%%% Database
0130   if isa(varargin{1}, 'database')
0131     h = retrieve(varargin{1}, varargin{2:end});
0132   else
0133     h         = init();
0134     h.name    = varargin{1};
0135     h.version = varargin{2};
0136   end
0137 
0138 %%%%%%%%%%  h = history(name, version, plist)   %%%%%%%%%%
0139 elseif nargin == 3
0140   if isempty(varargin{3})
0141     varargin{3} = plist();
0142   end
0143 
0144   h         = init();
0145   h.name    = varargin{1};
0146   h.version = varargin{2};
0147   h.plist   = varargin{3};
0148 
0149 %%%%%%%%%%  h = history(name, version, plist, history)   %%%%%%%%%%
0150 elseif nargin == 4
0151   if isempty(varargin{3})
0152     varargin{3} = plist();
0153   end
0154 
0155   h         = init();
0156   h.name    = varargin{1};
0157   h.version = varargin{2};
0158   h.plist   = varargin{3};
0159   h.inhists = varargin{4};
0160 
0161 else
0162   error('### Unknown number of constructor arguments.');
0163 end
0164 
0165 end

Generated on Tue 22-Jan-2008 10:39:13 by m2html © 2003