Mercurial > hg > ltpda
view m-toolbox/classes/@history/history.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line source
% HISTORY History object class constructor. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: HISTORY History object class constructor. % Create a history object. % % SUPERCLASSES: ltpda_nuo < ltpda_obj % % CONSTRUCTORS: % % h = history() % h = history(proctime, minfo, plist) % h = history(proctime, minfo, plist, in_names, oldUUID, in_hists) % % h = history(filename) % h = history(structure) % h = history(history-object) % h = history('database', ...) % % INPUTS: minfo: Minfo-object which is created in the called method. % plist: Plist-object which is used in the called method. % in_names: Variable names which are used for the called method. % in_hist: Older history-objects % % VERSION: $Id: history.m,v 1.72 2011/03/28 17:02:27 ingo Exp $ % % SEE ALSO: ltpda_obj, ltpda_nuo, minfo, plist % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% classdef (Sealed = true, Hidden = true) history < ltpda_nuo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Property definition % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %---------- Public (read/write) Properties ---------- properties end %---------- Protected read-only Properties ---------- properties (SetAccess = protected) methodInfo = []; % minfo-object which is created in the called method plistUsed = []; % plist-object which is used in the called method methodInvars = {}; % variable names which are used for the called method inhists = []; % the older history-objects proctime = []; % creation time of the history object UUID = []; % UUID of the object that was changed objectClass = ''; % The class of the object the history was attached to creator = provenance(); end %---------- Private Properties ---------- properties (GetAccess = public, SetAccess = private) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Check property setting % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods function set.methodInfo(obj, val) if ~(isa(val, 'minfo') || isempty(val)) error('### The value for the property ''methodInfo''\n### must be a minfo-object or empty but\n### it is from the class %s', class(val)); end obj.methodInfo = val; end function set.plistUsed(obj, val) if ~(isa(val, 'plist') || isempty(val)) error('### The value for the property ''plistUsed''\n### must be a plist-object or empty but\n### it is from the class %s', class(val)); end obj.plistUsed = val; end function set.methodInvars(obj, val) if ~iscell(val) error('### The value for the property ''methodInvars''\n### must be a cell-array but\n### it is from the class %s', class(val)); end obj.methodInvars = val; end function set.inhists(obj, val) if ~(isa(val, 'history') || isempty(val) || ischar(val)) error('### The value for the property ''inhists''\n### must be a history-object or empty but\n### it is from the class %s', class(val)); end obj.inhists = val; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Constructor % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods function obj = history(varargin) switch nargin case 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%% no input %%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do nothing case 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%% one input %%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%% From File %%%%%%%%%%%%%%%% if ischar(varargin{1}) filename = varargin{1}; [path, name, ext] = fileparts(filename); switch ext case '.mat' obj = load(filename); obj = obj.a; case '.xml' root_node = xmlread(filename); obj = utils.xml.xmlread(root_node, 'history'); otherwise error('### Unknown file type.'); end %%%%%%%%%% h = history(struct) %%%%%%%%%% elseif isstruct(varargin{1}) obj = fromStruct(obj, varargin{1}); %%%%%%%%%% h = history(history) %%%%%%%%%% elseif isa(varargin{1}, 'history') obj = copy(varargin{1}, 1); %%%%%%%%%% h = history(plist) %%%%%%%%%% elseif isa(varargin{1}, 'plist') %%% is the plist is empty then return an empty history object if nparams(varargin{1}) == 0 obj.plistUsed = varargin{1}; else error('### Unknown history constructor method.'); end else error('### Unknown history constructor method.'); end case 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%% two input %%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl') && ... isa(varargin{2}, 'history') %%%%%%%%%% obj = history(DOM node, history-objects) %%%%%%%%%% obj = fromDom(obj, varargin{1}, varargin{2}); else error('### Unknown constructor method for two inputs.'); end case 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% three inputs %%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% h = history(proctime, minfo, plist) %%%% %%% Use default values if ~isempty(varargin{1}) obj.proctime = varargin{1}; end if ~isempty(varargin{2}) obj.methodInfo = varargin{2}; end if ~isempty(varargin{3}) obj.plistUsed = varargin{3}; end case 6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% five inputs %%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% h = history(proctime, minfo, plist, in_names, oldUUID, in_hists) %%%% %%% Use default values if ~isempty(varargin{1}) obj.proctime = varargin{1}; end if ~isempty(varargin{2}) obj.methodInfo = varargin{2}; end if isempty(varargin{3}) obj.plistUsed = plist(); else obj.plistUsed = varargin{3}; end if ~isempty(varargin{4}) obj.methodInvars = varargin{4}; end if ~isempty(varargin{5}) % Don't store the 'old' UUID inside the history object because we % use the UUID of the history object for creating the history % tree. For this it is necessary that the history have its own % independent UUID. % obj.UUID = varargin{5}; end if ~isempty(varargin{6}) obj.inhists = varargin{6}; end otherwise error('### Unknown number of constructor arguments.'); end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (public) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods %%% Define Abstract methods varargout = char(varargin) varargout = copy(varargin) varargout = display(varargin) varargout = getNodes(varargin) varargout = hist2dot(varargin) varargout = hist2m(varargin) varargout = plot(varargin) varargout = string(varargin) end methods (Hidden = true) varargout = attachToDom(varargin) varargout = getObjectClass(varargin); varargout = setObjectClass(varargin); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (protected) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods (Access = protected) varargout = fromStruct(varargin) varargout = fromDom(varargin) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (private) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods (Access = private) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (Static, Public) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods (Static = true) function out = VEROUT() out = '$Id: history.m,v 1.72 2011/03/28 17:02:27 ingo Exp $'; end function ii = getInfo(varargin) ii = utils.helper.generic_getInfo(varargin{:}, 'history'); end function out = SETS() out = {'Default'}; end function out = getDefaultPlist(set) switch lower(set) case 'default' out = plist(); otherwise error('### Unknown set [%s]', set); end end function obj = initObjectWithSize(n,m) obj = history.newarray([n m]); end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (Static, Private) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods (Static = true, Access = private) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Methods (static, hidden) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% methods (Static = true, Hidden = true) varargout = loadobj(varargin) varargout = update_struct(varargin); end end