Mercurial > hg > ltpda
diff m-toolbox/classes/@minfo/minfo.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@minfo/minfo.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,301 @@ +% MINFO a helper class for LTPDA methods. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% MINFO is a helper class for LTPDA methods. It holds minformation about the +% method. +% +% SUPERCLASSES: ltpda_nuo < ltpda_obj +% +% CONSTRUCTORS: +% +% m = minfo() - creates an empty object +% m = minfo(mname, ... - +% mclass, ... +% mpackage, ... +% mcategory, ... +% mversion, ... +% param_sets, ... +% plists, ... +% argsmin, ... +% argsmax) +% +% VERSION: $Id: minfo.m,v 1.42 2011/04/17 09:20:52 hewitson Exp $ +% +% SEE ALSO: ltpda_obj, ltpda_nuo, history +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +classdef (Hidden = true) minfo < ltpda_nuo + + %------------------------------------------------ + %---------- Private read-only Properties -------- + %------------------------------------------------ + properties (SetAccess = protected) + mname = ''; % The method name + mclass = ''; % The method class + mpackage = 'ltpda'; % The package (if applicable) + mcategory = ''; % The category of the method + mversion = ''; % The cvs-version of the method + description = ''; % description of the model or method + children = []; + sets = {}; % A cell array of parameter set names + plists = []; % An array of parameter lists + argsmin = 1; % Minimum number of input arguments [0 is unbounded] + argsmax = -1; % Maximum number of input arguments [0 is unbounded] + outmin = 1; % Minimum number of output arguments + outmax = -1; % Maximum number of output arguments + modifier = true; % Can the method be used as a modifier + end + + properties (SetAccess = protected) + end + + %------------------------------------------------ + %-------- Declaration of public methods -------- + %------------------------------------------------ + methods + + %------------------------------------------------ + %-------- Property rules -------- + %------------------------------------------------ + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Constructor % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + function ii = minfo(varargin) + + switch nargin + case 0 + case 1 + + if isstruct(varargin{1}) + %%%%%%%%%% ii = minfo(structure) %%%%%%%%%% + %%%%%%%%%% necessary for readxml %%%%%%%%%% + ii = fromStruct(ii, varargin{1}); + elseif isa(varargin{1}, 'minfo') + ii = copy(varargin{1}, 1); + else + ii.mname = varargin{1}; + end + + case 2 + if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl') && ... + isa(varargin{2}, 'history') + %%%%%%%%%% obj = minfo(DOM node, history-objects) %%%%%%%%%% + %%%%%%%%%% necessary for reading new XML files %%%%%%%%%% + ii = fromDom(ii, varargin{1}, varargin{2}); + + else + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + end + case 3 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + case 4 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + case 5 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + case 6 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + ii.sets = varargin{6}; + case 7 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + ii.sets = varargin{6}; + % add plists until we have at least as many as set + % descriptions + pls = varargin{7}; + while numel(pls) < numel(ii.sets) + pls = [pls plist]; + end + ii.plists = pls; + % Check we have one set description per plist + if numel(ii.plists) ~= numel(ii.sets) + dummySets = ii.sets; + while numel(dummySets) < numel(ii.plists) + dummySets = [dummySets {''}]; + end + ii.sets = dummySets; + end + case 8 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + ii.sets = varargin{6}; + % add plists until we have at least as many as set + % descriptions + pls = varargin{7}; + while numel(pls) < numel(ii.sets) + pls = [pls plist]; + end + ii.plists = pls; + % Check we have one set description per plist + if numel(ii.plists) ~= numel(ii.sets) + dummySets = ii.sets; + while numel(dummySets) < numel(ii.plists) + dummySets = [dummySets {''}]; + end + ii.sets = dummySets; + end + ii.argsmin = varargin{8}; + case 9 + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + ii.sets = varargin{6}; + % add plists until we have at least as many as set + % descriptions + pls = varargin{7}; + while numel(pls) < numel(ii.sets) + pls = [pls plist]; + end + ii.plists = pls; + % Check we have one set description per plist + if numel(ii.plists) ~= numel(ii.sets) + dummySets = ii.sets; + while numel(dummySets) < numel(ii.plists) + dummySets = [dummySets {''}]; + end + ii.sets = dummySets; + end + ii.argsmin = varargin{8}; + ii.argsmax = varargin{9}; + case 12 + % Necessary for the string-method. + ii.mname = varargin{1}; + ii.mclass = varargin{2}; + ii.mpackage = varargin{3}; + ii.mcategory = varargin{4}; + ii.mversion = varargin{5}; + ii.sets = varargin{6}; + if ~isempty(varargin{7}) + ii.plists = varargin{7}; + end + ii.argsmin = varargin{8}; + ii.argsmax = varargin{9}; + ii.outmin = varargin{10}; + ii.outmax = varargin{11}; + ii.modifier = varargin{12}; + + otherwise + error('### Unknown number of constructor arguments'); + end + + + end % End of constructor + end % End public methods + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (public) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + varargout = char(varargin) + varargout = copy(varargin) + varargout = display(varargin) + varargout = setMversion(varargin) + varargout = setModifier(varargin) + varargout = setArgsmax(varargin) + varargout = setArgsmin(varargin) + varargout = setOutmin(varargin) + varargout = setOutmax(varargin) + varargout = setMclass(varargin) + varargout = addChildren(varargin) + end + + methods (Hidden = true) + varargout = attachToDom(varargin) + varargout = clearSets(varargin) + varargout = getEncodedString(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: minfo.m,v 1.42 2011/04/17 09:20:52 hewitson Exp $'; + end + + function ii = getInfo(varargin) + ii = utils.helper.generic_getInfo(varargin{:}, 'minfo'); + 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 = minfo.newarray([n m]); + end + + varargout = getInfoAxis(varargin); + + 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); + varargout = setFromEncodedInfo(varargin) + end + +end +