


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.14 2007/08/31 17:40:08 hewitson Exp $
HISTORY: 30-01-2007 M Hewitson
Creation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


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