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
+