Mercurial > hg > ltpda
view m-toolbox/classes/+utils/@models/processModelInputs.m @ 34:03d92954b939 database-connection-manager
Improve look of LTPDAPreferences diaolog
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Mon, 05 Dec 2011 16:20:06 +0100 |
parents | f0afece42f48 |
children |
line wrap: on
line source
% PROCESSMODELINPUTS processes the various input options for built-in % models. % % The function requires various pieces of information about the model: % % [info, pl, constructorInfo, fcn] = ... % processModelInputs(options, ... % modelname, ... % getModelDescription, ... % getModelDocumentation, ... % getVersion, ... % versionTable) % % options - the options passed by the constructor to the model % % function [info, pl, constructorInfo, fcn] = processModelInputs(options, modelname, getModelDescription, getModelDocumentation, getVersion, versionTable) info = []; pl = []; constructorInfo = []; fcn = []; if ischar(options{1}) if strcmpi(options{1}, 'describe') || strcmpi(options{1}, 'description') if numel(options) == 2 && ischar(options{2}) version = options{2}; else vt = versionTable(); version = vt{1}; end info = utils.models.getDescription(getModelDescription, versionTable, version, getVersion); elseif strcmpi(options{1}, 'doc') info = getModelDocumentation(); if isempty(info) info = 'no documentation'; end elseif strcmpi(options{1}, 'versionTable') info = versionTable(); elseif strcmpi(options{1}, 'version') info = getVersion(); elseif strcmpi(options{1}, 'plist') % for backwards compatibility if numel(options) == 2 && ischar(options{2}) info = utils.models.getDefaultPlist(getModelDescription, versionTable, options{2}); else info = utils.models.getDefaultPlist(getModelDescription, versionTable); end elseif strcmpi(options{1}, 'info') if numel(options) == 2 && ischar(options{2}) ver = options{2}; else pl = utils.models.getDefaultPlist(getModelDescription, versionTable); ver = pl.find('version'); end info = utils.models.getInfo(modelname, getModelDescription, versionTable, ver, getVersion); else error('incorrect inputs'); end return end % Inputs and default values userPlist = options{1}; version = userPlist.find('version'); if isempty(version) vers = versionTable(); version = vers{1}; end if numel(options) > 1 constructorInfo = options{2}; pl = combine(userPlist, constructorInfo.plists, utils.models.getDefaultPlist(getModelDescription, versionTable, version)); else constructorInfo = ''; pl = combine(userPlist, utils.models.getDefaultPlist(getModelDescription, versionTable, version)); end % Build the object fcn = utils.models.functionForVersion(getModelDescription, versionTable, version); if ~isempty(constructorInfo) constructorInfo.addChildren(utils.models.getInfo(modelname, getModelDescription, versionTable, version, getVersion)); end end