view m-toolbox/classes/+utils/@models/processModelInputs.m @ 27:29276498ebdb
database-connection-manager
Remove LTPDARepositoryManager implementation
* * *
Remove GUI helper
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05)
parents
f0afece42f48
children
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