Mercurial > hg > ltpda
view m-toolbox/classes/@ssmport/ssmport.m @ 32:e22b091498e4 database-connection-manager
Update makeToolbox
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Mon, 05 Dec 2011 16:20:06 +0100 |
parents | f0afece42f48 |
children |
line wrap: on
line source
% SSMPORT a helper class for the SSM class. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % SSMPORT a helper class for the SSM class. % % SUPERCLASSES: ltpda_nuo < ltpda_obj % % CONSTRUCTORS: % % sb = ssmport(name); % sb = ssmport(name, desc); % sb = ssmport(name, desc, units); % % VERSION: $Id: ssmport.m,v 1.22 2011/03/28 17:02:29 ingo Exp $ % % SEE ALSO: ltpda_obj, ltpda_nuo, ssm % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% classdef (Hidden = true) ssmport < ltpda_nuo %% -------- Public (read/write) Properties ------- properties end % -------- Public (read/write) Properties ------- %% -------- Private read-only Properties -------- properties (SetAccess = protected) name = '.'; % name of the block units = unit(); % units associated with this port description = ''; % description of the block end %% -------- Private read-only Properties -------- %% -------- Dependant Hidden Properties --------- properties (Dependent, Hidden) end %-------- Dependant Hidden Properties --------- %% -------- Dependant Hidden Properties Methods ------ methods end % -------- Dependant Properties Methods ------ %% -------- constructor ------ methods function sp = ssmport(varargin) switch nargin case 0 % Empty constructor case 1 if isa(varargin{1}, 'ssmport') % copy constructor. sp = copy(varargin{1},1); elseif isstruct(varargin{1}) % sp = ssmport(struct) sp = fromStruct(sp, varargin{1}); else error('### Unknown single argument constructor: ssmport(%s)', class(varargin{1})); end case 2 if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl') && ... isa(varargin{2}, 'history') sp = fromDom(sp, varargin{1}, varargin{2}); else error('### Unknown two argument constructor: ssmport(%s, %s)', class(varargin{1}), class(varargin{2})); end otherwise error('### Unknown argument constructor'); end end % End constructor end %% -------- constructor ------ %% -------- Hidden methods ------ methods (Hidden = true) varargout = attachToDom(varargin) function clearAllUnits(inputs) for kk=1:numel(inputs) inputs(kk).units = []; end end %% properties methods function portNames = portNames(port) portNames = cell(1, numel(port)); for i=1:numel(port) portNames{i} = port(i).name; end end function portDescriptions = portDescriptions(port) portDescriptions = cell(1, numel(port)); for i=1:numel(port) portDescriptions{i} = port(i).description; end end function portUnits = portUnits(port) portUnits = unit.initObjectWithSize(1, numel(port)); for i=1:numel(port) portUnits(i) = port(i).units; end end %% No search methods in this class %% set methods function port = setName(port, names, blockName) % checking block name is acceptable blockName = upper(blockName); if numel(strfind(blockName,'.'))>0 error('The "." is not allowed in ssmblock name') end if numel(strfind(blockName,' '))>0 error('The space " " is not allowed in ssmblock name') end % setting portNames depending on wether they are provided or not if isempty(names) % setting for empty port names for ii=1:numel(port) port(ii).name = [blockName '.variable_' num2str(ii)]; end else % setting for char/cellstr port names if ischar(names), names = {names}; end for ii=1:numel(port) portName = names{ii}; if numel(strfind(portName,'.'))>0 error('The "." is not allowed in ssmport name') end if numel(strfind(portName,' '))>0 error('The space " " is not allowed in ssmport name') end port(ii).name = [blockName '.' lower(portName)]; end end end function port = modifyBlockName(port, oldName, newName) if numel(strfind(newName,'.'))>0 error('The "." is not allowed in ssmblock name') end if numel(strfind(newName,' '))>0 error('The space " " is not allowed in ssmblock name') end newName = upper(newName); for ii=1:numel(port) if ~isempty(port(ii).name) str = port(ii).name; [blockName, portName] = ssmblock.splitName(str); port(ii).name = [newName '.' portName]; end end end function port = setDescription(port, descriptions) if ischar(descriptions), descriptions = {descriptions}; end if numel(descriptions)==1 for ii=1:numel(port) port(ii).description = descriptions{1}; end else for ii=1:numel(port) port(ii).description = descriptions{ii}; end end end function port = setUnits(port, units) if ~isa(units, 'unit') error('the port unit field must be of class unit') end if numel(units)==1 for ii=1:numel(port) port(ii).units = units(1); end else for ii=1:numel(port) port(ii).units = units(ii); end end end end %% -------- Hidden methods ------ %% -------- private static methods ------ methods (Static=true, Access=private) end %% -------- private static methods ------ %% -------- public static methods ------ methods (Static=true) function obj = initObjectWithSize(n,m) obj = ssmport.newarray([n m]); end function out = VEROUT() out = '$Id: ssmport.m,v 1.22 2011/03/28 17:02:29 ingo Exp $'; end function ii = getInfo(varargin) ii = utils.helper.generic_getInfo(varargin{:}, 'ssmport'); 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 end %% -------- public static methods ------ %% ---------- public static hidden methods --------------- methods (Static = true, Hidden = true) varargout = loadobj(varargin) varargout = update_struct(varargin); end %% -------- Declaration of Private methods -------- methods(Access = private) end methods (Access = protected) varargout = fromStruct(varargin) varargout = fromDom(varargin) end end