view m-toolbox/classes/@plist/getSelectionForParam.m @ 8:2f5c9bd7d95d database-connection-manager

Clarify ltpda_uo.retrieve parameters handling
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Mon, 05 Dec 2011 16:20:06 +0100
parents f0afece42f48
children
line wrap: on
line source

% GETSELECTIONFORPARAM Returns the selection mode for the specified parameter key.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DESCRIPTION: GETSELECTIONFORPARAM Returns the selection mode for the
%              specified parameter key.
%
% CALL:        obj = obj.getSelectionForParam('key');
%              obj = obj.getSelectionForParam(plist('key'));
%              obj = getSelectionForParam(obj, 'key');
%
% INPUTS:      obj - can be a vector, matrix, list, or a mix of them.
%              key - Parameter key
%
% <a href="matlab:utils.helper.displayMethodInfo('plist', 'getSelectionForParam')">Parameters Description</a>
% 
% VERSION:     $Id: getSelectionForParam.m,v 1.6 2011/04/08 08:56:21 hewitson Exp $
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function varargout = getSelectionForParam(varargin)
  
  %%% Check if this is a call for parameters
  if utils.helper.isinfocall(varargin{:})
    varargout{1} = getInfo(varargin{3});
    return
  end
  
  if nargin ~= 2
    error('### This method works only with two inputs (plist + key name).');
  end
  if ~(isa(varargin{1}, 'plist') || numel(varargin{1} ~= 1))
    error('### This method accepts only one plist as an input.')
  end
  if ~(ischar(varargin{2}) || isa(varargin{2}, 'plist'))
    error('### The second input must be a ')
  end
  
  pl  = varargin{1};
  key = varargin{2};
  val = [];
  
  if isa(key, 'plist')
    key = key.find('key');
  end
  
  for ii = 1:pl.nparams
    if strcmpi(pl.params(ii).key, key)
      val = pl.params(ii).val.selection;
      break;
    end
  end
  
  % Single output
  varargout{1} = val;
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                               Local Functions                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FUNCTION:    getInfo
%
% DESCRIPTION: Get Info Object
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function ii = getInfo(varargin)
  if nargin == 1 && strcmpi(varargin{1}, 'None')
    sets = {};
    pl   = [];
  else
    sets = {'Default'};
    pl   = getDefaultPlist;
  end
  % Build info object
  ii = minfo(mfilename, 'plist', 'ltpda', utils.const.categories.helper, '$Id: getSelectionForParam.m,v 1.6 2011/04/08 08:56:21 hewitson Exp $', sets, pl);
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FUNCTION:    getDefaultPlist
%
% DESCRIPTION: Get Default Plist
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function pl = getDefaultPlist()
  
  pl = plist();
  
  % Key
  p = param({'key', 'The key of the parameter to retrieve the selection mode from.'}, paramValue.EMPTY_STRING);
  pl.append(p);  
  
end