Mercurial > hg > ltpda
view m-toolbox/classes/@LTPDARepositoryManager/findConnections.m @ 24:056f8e1e995e database-connection-manager
Properly record history in fromRepository constructors
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Mon, 05 Dec 2011 16:20:06 +0100 |
parents | f0afece42f48 |
children |
line wrap: on
line source
% FINDCONNECTIONS finds a managed connection. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: FINDCONNECTIONS finds a managed connection. % % CALL: conns = rm.findConnections(pl); % conns = rm.findConnections('hostname'); % conns = rm.findConnections('hostname', 'database'); % conns = rm.findConnections('hostname', 'database', 'username'); % % findConneciton finds all connections which match the given input fields. % If no matching connections are found then the method returns an emtpy % array. To search for all 'hostnames' for a given 'username', enter an % empty string. For example: % % 1) Find all connections for user 'bob' % % pl = plist('username', 'bob'); % conns = rm.findConnections(pl); % % or % % conns = rm.findConnections('', '', 'bob'); % % 2) Find all connection to 'localhost' for database 'foo' % % pl = plist('hostname', 'localhost', 'database', 'foo') % conns = rm.findConnections(pl); % % or % % conns = rm.findConnections('localhost', 'foo'); % % 3) Find all connections to 'localhost' for user 'bob' % % conns = rm.findConnections('localhost', '', 'bob'); % % <a href="matlab:web(LTPDARepositoryManager.getInfo('findConnections').tohtml, '-helpbrowser')">Parameters Description</a> % % VERSION: $Id: findConnections.m,v 1.7 2011/04/08 08:56:35 hewitson Exp $ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function varargout = findConnections(varargin) % Check if this is a call for parameters if utils.helper.isinfocall(varargin{:}) varargout{1} = getInfo(varargin{3}); return end import utils.const.* utils.helper.msg(msg.PROC3, 'running %s/%s', mfilename('class'), mfilename); % Get the repository manager - there should only be one! [rm, invars, rest] = utils.helper.collect_objects(varargin(:), 'LTPDARepositoryManager'); % Collect all plists [pl, invars, rest] = utils.helper.collect_objects(rest(:), 'plist'); pl = combine(pl, getDefaultPlist); hostname = pl.find('hostname'); database = pl.find('database'); username = pl.find('username'); % Check through 'rest' if numel(rest) > 0 hostname = rest{1}; end if numel(rest) > 1 database = rest{2}; end if numel(rest) > 2 username = rest{3}; end % make sure that username are strings because JAVA interprets an empty % array [] as a null-pointer. if isempty(hostname), hostname = ''; end if isempty(database), database = ''; end if isempty(username), username = ''; end conns = rm.manager.findConnections(hostname, database, username); mconns = []; for i=1:conns.size mconns = [mconns conns.get(i-1)]; end % if isempty(mconns) % mconns = rm.newConnection(hostname, database, username); % end % utils.helper.msg(utils.const.msg.PROC1, 'Matched %d managed connections', numel(mconns)); if nargout > 0 varargout{1} = mconns; end end %-------------------------------------------------------------------------- % 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, 'LTPDARepositoryManager', 'ltpda', utils.const.categories.gui, '$Id: findConnections.m,v 1.7 2011/04/08 08:56:35 hewitson Exp $', sets, pl); end %-------------------------------------------------------------------------- % Get Default Plist %-------------------------------------------------------------------------- function pl = getDefaultPlist() % Initialise plist pl = plist(); % hostname p = param({'hostname', 'The hostname of the repository to connect to.'}, paramValue.EMPTY_STRING); pl.append(p); % database p = param({'database', 'The database on the repository.'}, paramValue.EMPTY_STRING); pl.append(p); % username p = param({'username', 'The username to connect with.'}, paramValue.EMPTY_STRING); pl.append(p); end % END