Mercurial > hg > ltpda
changeset 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 |
parents | ce4df2e95a55 |
children | 01b86b780ba7 |
files | m-toolbox/classes/@LTPDARepositoryManager/LTPDARepositoryManager.m m-toolbox/classes/@LTPDARepositoryManager/addConnection.m m-toolbox/classes/@LTPDARepositoryManager/basic_newConnection.m m-toolbox/classes/@LTPDARepositoryManager/cb_guiClosed.m m-toolbox/classes/@LTPDARepositoryManager/cb_newConnection.m m-toolbox/classes/@LTPDARepositoryManager/cb_timerClearPassord.m m-toolbox/classes/@LTPDARepositoryManager/cb_timerDisconnect.m m-toolbox/classes/@LTPDARepositoryManager/copyObjects.m m-toolbox/classes/@LTPDARepositoryManager/deleteTimer.m m-toolbox/classes/@LTPDARepositoryManager/display.m m-toolbox/classes/@LTPDARepositoryManager/executeQuery.m m-toolbox/classes/@LTPDARepositoryManager/findConnections.m m-toolbox/classes/@LTPDARepositoryManager/getConnection.m m-toolbox/classes/@LTPDARepositoryManager/getSinfo.m m-toolbox/classes/@LTPDARepositoryManager/listConnections.m m-toolbox/classes/@LTPDARepositoryManager/newConnection.m m-toolbox/classes/@LTPDARepositoryManager/resetTimer.m m-toolbox/classes/@LTPDARepositoryManager/showGui.m m-toolbox/classes/@LTPDARepositoryManager/startTimer.m m-toolbox/classes/@LTPDARepositoryManager/updatePrefs.m m-toolbox/m/helper/LTPDARepositoryManagerGui.m |
diffstat | 21 files changed, 0 insertions(+), 1760 deletions(-) [+] |
line wrap: on
line diff
--- a/m-toolbox/classes/@LTPDARepositoryManager/LTPDARepositoryManager.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -% LTPDARepositoryManager creates the LTPDA Repository Manager. -% -% CALL: -% >> LTPDARepositoryManager -% -% M Hewitson 08-01-10 -% -% $Id: LTPDARepositoryManager.m,v 1.14 2011/02/03 13:46:23 ingo Exp $ -% - - -classdef LTPDARepositoryManager < handle - %------------------------------------------------ - %---------- Private read-only Properties -------- - %------------------------------------------------ - properties (SetAccess = private, GetAccess = public) - manager = []; - gui = []; - selector = []; - timerDisconnect = []; - timerClearPass = []; - h1; - h2; - h3; - h4; - h5; - h6; - h7; - h8; - h9; - end - - properties (Constant = true, GetAccess = private) - DISCONNECT = 60; - end - - %----------------------------------------- - % Public methods - %----------------------------------------- - methods - - %----------------------------------------- - % Constructor - %----------------------------------------- - function wb = LTPDARepositoryManager(varargin) - - twb = getappdata(0, 'LTPDARepositoryManager'); - - if isa(twb, mfilename) - - wb = twb; - - else - - switch nargin - case 0 - % Create a new repository manager - wb.manager = mpipeline.repository.RepositoryManager(); - % Create timer which disconnects the open connections - wb.timerDisconnect = LTPDARepositoryManager.startTimer('LTPDA_disconnectConnections', @LTPDARepositoryManager.cb_timerDisconnect, wb.DISCONNECT); - % Create timer which clears the password - prefs = getappdata(0, 'LTPDApreferences'); - expiry = double(prefs.getRepoPrefs.getExpiry); - wb.timerClearPass = LTPDARepositoryManager.startTimer('LTPDA_clearPassword', @LTPDARepositoryManager.cb_timerClearPassord, expiry); - pause(0.1); - end - - % Store the manager in the application workspace - setappdata(0, 'LTPDARepositoryManager', wb); - - wb.updatePrefs(); - - end - end % End constructor - - %----------------------------------------- - % Destructor - %----------------------------------------- - function delete(h) - disp('*** Deleting repository manager') - if ~isempty(h) - disp(' - closing repository connections') - h.manager.closeAllConnections(); - h.deleteTimer('timerClearPass'); - h.deleteTimer('timerDisconnect'); - % close gui - if ~isempty(h.gui) - h.gui.dispose(); - end - end - end - - - function initGUI(wb) - - % Create a new GUI - wb.gui = mpipeline.repository.RepositoryManagerGUI([], wb.manager); - % Create new selector - wb.selector = mpipeline.repository.ConnectionSelector([], wb.manager); - - %--- called when window is closed - wb.h1 = handle(wb.gui, 'callbackproperties'); - wb.h1.WindowClosedCallback = @LTPDARepositoryManager.cb_guiClosed; - - - end - - end % End public methods - - methods - varargout = display(varargin) - varargout = updatePrefs(varargin) - varargout = restartTimers(varargin) - varargout = showGui(varargin) - varargout = listConnections(varargin) - - varargout = deleteTimer(varargin) - end - - methods (Static=true) - - % Callback methods - varargout = cb_timerDisconnect(varargin) - varargout = cb_timerClearPassord(varargin) - varargout = cb_newConnection(varargin) - varargout = cb_guiClosed(varargin) - - % Timer methods - varargout = startTimer(varargin) - varargout = resetTimer(varargin) - - % Helper Methods - varargout = getSinfo(varargin) - varargout = executeQuery(varargin) - varargout = copyObjects(varargin) - - function ii = getInfo(varargin) - ii = utils.helper.generic_getInfo(varargin{:}, 'LTPDARepositoryManager'); - end - - % Return the plist for a particular parameter set - function out = getDefaultPlist(set) - out = plist(); - end - - function out = VEROUT() - out = '$Id: LTPDARepositoryManager.m,v 1.14 2011/02/03 13:46:23 ingo Exp $'; - end - - function out = SETS() - out = {'Default'}; - end - - function obj = initObjectWithSize(n,m) - obj = LTPDARepositoryManager.newarray([n m]); - end - - end - %------------------------------------------------ - % Private static methods - %------------------------------------------------ - methods(Access=private, Static=true) - end - -end -
--- a/m-toolbox/classes/@LTPDARepositoryManager/addConnection.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -% ADDCONNECTION adds a new managed connection to the repository manager. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: addconnection adds a new managed connection to the -% repository manager. -% this method still adds a new connection. it doesn't open by -% default the connection and for this reason it is not -% necessary to define a password yet. -% -% call: conn = rm.addconnection(pl); -% conn = rm.addconnection('hostname'); -% conn = rm.addconnection('hostname', 'database'); -% conn = rm.addconnection('hostname', 'database', 'username'); -% conn = rm.addconnection('hostname', 'database', 'username', 'password'); -% -% <a href="matlab:web(ltpdarepositorymanager.getinfo('addconnection').tohtml, '-helpbrowser')">parameter sets</a> -% -% version: $Id: addConnection.m,v 1.6 2011/03/28 12:45:44 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = addConnection(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(utils.const.msg.MNAME , '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'); - password = pl.find('password'); - autoconnect = pl.find('connect'); - - % 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 - if numel(rest) > 3 - password = rest{4}; - end - - conn = mpipeline.repository.RepositoryConnection([]); - conn.setHostname(hostname); - conn.setDatabase(database); - conn.setUsername(username); - conn.setPassword(password); - - if ~isempty(password) && autoconnect - conn.openconnection(); - end - - rm.manager.addConnection(conn); - if ~isempty(rm.gui) - rm.gui.reloadConnectionTable(); - end - - if nargout == 1 - varargout{1} = conn; - 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: psd.m,v 1.53 2009/12/17 08:04:43 mauro 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); - - % password - p = param({'password', 'the password to connect with. leave this empty to be prompted on connection.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % auto connect - p = param({'connect', '''true'' or ''false'' if the repository manager should open the connection.'}, paramValue.FALSE_TRUE); - pl.append(p); - -end -
--- a/m-toolbox/classes/@LTPDARepositoryManager/basic_newConnection.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -% basic_newConnection basic method which creates a new connection. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: basic_newConnection basic method which creates a new -% connection. -% -% version: $Id: basic_newConnection.m,v 1.6 2010/08/16 18:04:36 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = basic_newConnection(rm, dbhost, dbname, dbuser, dbpass) - - % Build a new connection - conn = mpipeline.repository.RepositoryConnection([]); - conn.setUsername(dbuser); - conn.setPassword(dbpass); - conn.setDatabase(dbname); - conn.setHostname(dbhost); - - % Don't show the GUI if the connection have all information - if ~isempty(dbhost) && ... - ~isempty(dbname) && ... - ~isempty(dbuser) - if ~isempty(char(conn.getPassword)) - conn.openConnection(); - end - else - % Open connection GUI - prefs = getappdata(0, 'LTPDApreferences'); - hosts = prefs.getRepoPrefs.getHostnames; - - % Build connection dialog - warning('off', 'MATLAB:JavaEDTAutoDelegation'); - rcd = mpipeline.repository.RepositoryConnectionDialog([], true, hosts, conn); - rcd.setVisible(true); - warning('on', 'MATLAB:JavaEDTAutoDelegation'); - - conn = rcd.getRepositoryConnection; - - if rcd.isCancelled - disp('operation cancelled'); - conn = []; - else - if ~isempty(char(conn.getPassword)) - conn.openConnection(); - end - end - - end - - % Add valid connection to the Repository Manager - if isa(conn, 'mpipeline.repository.RepositoryConnection') - rm.manager.addConnection(conn); - if ~isempty(rm.gui) - rm.gui.reloadConnectionTable(); - end - else - conn = []; - end - - varargout{1} = conn; - -end - -
--- a/m-toolbox/classes/@LTPDARepositoryManager/cb_guiClosed.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -% cb_guiClosed will be called if the repository manager GUI is closed. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: cb_guiClosed will be called if the repository manager GUI is -% closed. -% -% version: $Id: cb_guiClosed.m,v 1.2 2010/01/22 12:23:02 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function cb_guiClosed(varargin) - disp('*** Goodbye from the LTPDA Repository Manager GUI'); -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/cb_newConnection.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -% cb_newConnection callback method which creates a new connection. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: cb_newConnection callback method which creates a new -% connection. -% -% version: $Id: cb_newConnection.m,v 1.2 2010/01/22 12:23:02 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function cb_newConnection(varargin) - - rm = getappdata(0, 'LTPDARepositoryManager'); - if ~isa(rm, 'LTPDARepositoryManager') - rm = LTPDARepositoryManager(); - end - - rm.newConnection; - -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/cb_timerClearPassord.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -% cb_timerClearPassord callback method which disconnects the connection and clears the password -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: cb_timerClearPassord callback method which disconnects the -% connection and clears the password -% -% version: $Id: cb_timerClearPassord.m,v 1.6 2010/08/16 18:04:36 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = cb_timerClearPassord(varargin) - - prefs = getappdata(0, 'LTPDApreferences'); - - rm = LTPDARepositoryManager(); - conns = rm.manager.getConnections(); - - if ~isempty(conns) - - for ii=1:conns.size - conn = conns.get(ii-1); - - % Clear the password only if the connection is not locked - if ~conn.isLocked - if conn.isConnected - conn.closeConnection(); - end - - if (conn.agePassword > double(prefs.getRepoPrefs.getExpiry)) - conn.setPassword(''); - end - end - - end - - end - if ~isempty(rm.gui) - rm.gui.reloadConnectionTable(); - end -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/cb_timerDisconnect.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -% cb_timerDisconnect callback method which disconnects the connections -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: callback method which disconnects the connections -% -% version: $Id: cb_timerDisconnect.m,v 1.5 2010/06/25 08:55:52 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = cb_timerDisconnect(varargin) - - rm = LTPDARepositoryManager(); - conns = rm.manager.getConnections(); - - if ~isempty(conns) - - for ii=1:conns.size - conn = conns.get(ii-1); - - % Clear the password only if the connection is not locked - if ~conn.isLocked - if (conn.ageConnected > rm.DISCONNECT) - conn.closeConnection(); - if ~isempty(rm.gui) - rm.gui.reloadConnectionTable(); - end - end - end - end - - end - -end - -
--- a/m-toolbox/classes/@LTPDARepositoryManager/copyObjects.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -% COPYOBJECTS This function copies objects from one repository to another. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: This static function copies objects from one repository to another. -% -% call: LTPDARepositoryManager.copyObjects(pl); -% LTPDARepositoryManager.copyObjects([1 2 3], -% 'hostname1', -% 'database1', -% 'username1', -% 'hostname2', -% 'database2', -% 'username2'); -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('LTPDARepositoryManager.copyObjects').tohtml, '-helpbrowser')">Parameters Description</a> -% -% version: $Id: copyObjects.m,v 1.5 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = copyObjects(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); - - % Collect all plists - [pl, invars, rest] = utils.helper.collect_objects(varargin(:), 'plist'); - - pl = combine(pl, getDefaultPlist); - ids = pl.find('ids'); - hostname1 = pl.find('hostname1'); - database1 = pl.find('database1'); - username1 = pl.find('username1'); - hostname2 = pl.find('hostname2'); - database2 = pl.find('database2'); - username2 = pl.find('username2'); - - % Check through 'rest' - if numel(rest) > 0 - ids = rest{1}; - end - if numel(rest) > 1 - hostname1 = rest{2}; - end - if numel(rest) > 2 - database1 = rest{3}; - end - if numel(rest) > 3 - username1 = rest{4}; - end - if numel(rest) > 4 - hostname2 = rest{5}; - end - if numel(rest) > 5 - database2 = rest{6}; - end - if numel(rest) > 6 - username2 = rest{7}; - end - - % Some plausibility checks - if isempty(ids) - error('### This method needs at least one object id which you want to copy.'); - end - - % Get the repository manager - there should only be one! - rm = LTPDARepositoryManager(); - - % Get connection - conn1 = rm.findConnections(hostname1, database1, username1); - if numel(conn1) == 0 - conn1 = rm.newConnection(hostname1, database1, username1); - elseif numel(conn1) > 1 - conn1 = rm.manager.selectConnection([]); - end - - if isempty(conn1) - error('### It is necessary to create or select a connection.'); - end - - % open connection - conn1.openConnection(); - if ~conn1.isConnected() - error('### Can not open the connection.'); - end - - try - - objs = ltpda_uo.retrieve(conn1, ids); - if ~iscell(objs) - objs = {objs}; - end - sinfo = LTPDARepositoryManager.getSinfo(ids, ... - char(conn1.getHostname), char(conn1.getDatabase), char(conn1.getUsername)); - - pl = plist('hostname', hostname2, 'database', database2, 'username', username2, 'no dialog', true); - for oo = 1:numel(objs) - obj = objs{oo}; - obj.submit(sinfo(oo), pl); - end - catch Exception - disp(Exception.message); - error('### Copying failed.'); - end - -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Local Functions % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getInfo -% -% DESCRIPTION: Returns the method-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.helper, '$Id: copyObjects.m,v 1.5 2011/04/08 08:56:35 hewitson Exp $', sets, pl); -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getDefaultPlist -% -% DESCRIPTION: Returns the default PLIST -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function pl = getDefaultPlist() - - % Initialise plist - pl = plist(); - - % ids - p = param({'ids', 'Object identifications of which you want to copy.'}, paramValue.EMPTY_DOUBLE); - pl.append(p); - - % hostname1 - p = param({'hostname1', 'The hostname of the ''old'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % database1 - p = param({'database1', 'The database of the ''old'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % username1 - p = param({'username1', 'The username for the ''old'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % hostname2 - p = param({'hostname2', 'The hostname of the ''new'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % database2 - p = param({'database2', 'The database of the ''new'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % username2 - p = param({'username2', 'The username for the ''new'' repository.'}, paramValue.EMPTY_STRING); - pl.append(p); - -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/deleteTimer.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -% DELETETIMER delets the input timer. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: DELETETIMER delets the input timer. -% -% call: deleteTimer(rm, t) -% -% inputs rm - Repository manager -% t - Property name of a timer. -% -% version: $Id: deleteTimer.m,v 1.4 2011/02/03 13:44:45 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function deleteTimer(rm, tName) - - if isa(rm.(tName), 'timer') - stop(rm.(tName)); - delete(rm.(tName)); - end - - rm.(tName) = []; - -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/display.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -% DISPLAY implement terminal display for the repository manager. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: DISPLAY implement terminal display for the repository -% manager. -% -% CALL: display(rm) -% rm % without a semicolon -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('display').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: display.m,v 1.3 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = display(varargin) - - % Check if this is a call for parameters - if utils.helper.isinfocall(varargin{:}) - varargout{1} = getInfo(varargin{3}); - return - end - - rm = varargin{1}; - rm.manager -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.output, '$Id: display.m,v 1.3 2011/04/08 08:56:35 hewitson Exp $', sets, pl); - ii.setModifier(false); - ii.setOutmin(0); -end - -%-------------------------------------------------------------------------- -% Get Default Plist -%-------------------------------------------------------------------------- -function pl = getDefaultPlist() - pl = plist(); -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/executeQuery.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,289 +0,0 @@ -% EXECUTEQUERY query a LTPDA repository database. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: EXECUTEQUERY query a LTPDA repository database. -% -% CALL: info = executeQuery(pl); -% info = executeQuery(query); -% info = executeQuery(table, query); -% info = executeQuery(query, hostname, database, username); -% info = executeQuery(table, query, hostname, database, username); -% -% INPUTS: pl - a PLIST object. -% query - a valid MySQL query string -% table - a table name -% hostname - hostname of the LTPDA database -% database - LTPDA database -% username - user name -% -% OUTPUTS: info - the returned 'info' structure contains the fields -% from each matching record. -% -% REMARK: If you don't specify a hostname, database and user name then -% do this method the following: -% The repository manager have the following numer of connections: -% 0: A GUI will open for creating a new connection. -% 1: The method will use this connection. -% >1: A GUI will open where you have to select a connection -% -% EXAMPLES: -% -% >> info = LTPDARepositoryManager.executeQuery('select * from objmeta where id>1000 and id<2000'); -% >> info = LTPDARepositoryManager.executeQuery('ao', 'id>1000 and id<2000'); -% >> info = LTPDARepositoryManager.executeQuery('objmeta', 'name like "x12"'); -% >> info = LTPDARepositoryManager.executeQuery('users', 'username="aouser"'); -% >> info = LTPDARepositoryManager.executeQuery('collections', 'id=3'); -% >> info = LTPDARepositoryManager.executeQuery('collections', 'obj_id="1,2"'); -% >> info = LTPDARepositoryManager.executeQuery('transactions', 'user_id=3'); -% >> info = LTPDARepositoryManager.executeQuery('transactions', 'obj_id=56'); -% -% The 'info' cell-array will contain the results from the SQL query. -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('LTPDARepositoryManager.executeQuery').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: executeQuery.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = executeQuery(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 = LTPDARepositoryManager(); - - % Collect all plists - [pl, invars, rest] = utils.helper.collect_objects(varargin(:), 'plist'); - - pl = combine(pl, getDefaultPlist); - query = pl.find('query'); - table = pl.find('table'); - hostname = pl.find('hostname'); - database = pl.find('database'); - username = pl.find('username'); - - % Check through 'rest' - if (numel(rest) == 1) && (ischar(rest{1})) - query = rest{1}; - elseif numel(rest) == 2 - table = rest{1}; - query = rest{2}; - elseif numel(rest) == 4 - query = rest{1}; - hostname = rest{2}; - database = rest{3}; - username = rest{4}; - elseif numel(rest) == 5 - table = rest{1}; - query = rest{2}; - hostname = rest{3}; - database = rest{4}; - username = rest{5}; - end - - % Get connection - conn = rm.findConnections(hostname, database, username); - if numel(conn) == 0 - conn = rm.newConnection(hostname, database, username); - elseif numel(conn) > 1 - conn = rm.manager.selectConnection([]); - end - - if isempty(conn) - error('### It is necessary to create or select a connection.'); - end - - % open connection - conn.openConnection(); - if ~conn.isConnected() - error('### Can not open the connection.'); - end - - % make sure - try - mustUnlock = ~conn.isLocked(); - - % Lock connection - conn.setLocked(true); - - if isempty(table) && ~isempty(query) - % execute query - info = simpleQuery(conn, query); - elseif ~isempty(query) && ~isempty(table) - % query a table - info = runQuery(conn, table, query); - else - error('### Incorrect inputs. Please specify at least a query and/or a table.'); - end - catch Exception - if (mustUnlock) - conn.setLocked(false); - end - error(Exception.message); - end - - if (mustUnlock) - conn.setLocked(false); - end - - varargout{1} = info; -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Local Functions % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Get table list -function info = getTableList(conn) - - info = {}; - - % open a connection - try - q = 'show tables'; - results = conn.query(q); - while results.next - info = [info {char(results.getString(1))}]; - end - catch Exception - disp(Exception.message); - error('### Failed to get table list.'); - end -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Get field list -function info = getFieldList(conn, table) - - info = {}; - try - q = ['describe ' table]; - results = conn.query(q); - while results.next - info = [info {char(results.getObject(1))}]; - end - catch Exception - disp(Exception.message); - error('### Failed to get field list.'); - end -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Get field list -function info = simpleQuery(conn, q) - - % open a connection - info = {}; - try - results = conn.query(q); - mt = results.getMetaData; - Ncols = mt.getColumnCount; - row = 1; - while results.next - for kk=1:Ncols - info{row,kk} = convertValue(results.getObject(kk)); - end - row = row + 1; - end - - catch Exception - disp(Exception.message); - error('### Failed to execute query.'); - end -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Run a query -function info = runQuery(conn, table, query) - - % Run query - info = {}; - - fields = getFieldList(conn, table); - f = ''; - fs = {}; - for j=1:length(fields) - % special cases - f = [f fields{j} ',' ]; - fs = [fs fields(j)]; - end - q = sprintf('select %s from %s where %s', f(1:end-1), table, query); - disp(['** QUERY: ' q]); - try - info = simpleQuery(conn, q); - catch Exception - disp(Exception.message); - error('### Failed to query table.'); - end -end - -function val = convertValue(val) - - switch class(val) - case 'java.sql.Timestamp' - val = char(val); - otherwise - end -end - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getInfo -% -% DESCRIPTION: Returns the method-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.helper, '$Id: executeQuery.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $', sets, pl); -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getDefaultPlist -% -% DESCRIPTION: Returns the default PLIST -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function pl = getDefaultPlist() - - % Initialise plist - pl = plist(); - - % query - p = param({'query', 'A valid MySQL query string.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % table - p = param({'table', 'A table name.'}, paramValue.EMPTY_STRING); - pl.append(p); - - % 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
--- a/m-toolbox/classes/@LTPDARepositoryManager/findConnections.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -% 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
--- a/m-toolbox/classes/@LTPDARepositoryManager/getConnection.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -% GETCONNECTION makes a new managed repository connection. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: GETCONNECTION makes a new managed repository connection. -% -% CALL: conn = rm.getConnection(pl); -% conn = rm.getConnection('hostname'); -% conn = rm.getConnection('hostname', 'database'); -% conn = rm.getConnection('hostname', 'database', 'username'); -% conn = rm.getConnection('hostname', 'database', 'username', 'password'); -% -% If all required connection fields are input, the connection will be -% silently created and added to the manager. Otherwise, a connection dialog -% will be presented and the resulting connection added to the manager. -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('getConnection').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: getConnection.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = getConnection(varargin) - - % Check if this is a call for parameters - if utils.helper.isinfocall(varargin{:}) - varargout{1} = getInfo(varargin{3}); - return - end - - varargout{1} = newConnection(varargin{:}); - -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: getConnection.m,v 1.4 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); - - % password - p = param({'password', 'The password to connect with. Leave this empty to be prompted on connection.'}, paramValue.EMPTY_STRING); - pl.append(p); - -end -% END
--- a/m-toolbox/classes/@LTPDARepositoryManager/getSinfo.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -% GETSINFO gets the submission information of an object in the repository. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: GETSINFO gets the submission information of an object in the -% repository. -% -% CALL: sinfo = LTPDARepositoryManager.getSinfo(pl); -% sinfo = LTPDARepositoryManager.getSinfo(ids); -% sinfo = LTPDARepositoryManager.getSinfo(ids, 'hostname'); -% sinfo = LTPDARepositoryManager.getSinfo(ids, 'hostname', 'database'); -% sinfo = LTPDARepositoryManager.getSinfo(ids, 'hostname', 'database', 'username'); -% -% If all required connection fields are input, the connection will be -% silently created and added to the manager. Otherwise, a connection dialog -% will be presented and the resulting connection added to the manager. -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('LTPDARepositoryManager.getSinfo').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: getSinfo.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = getSinfo(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); - - % Collect all plists - [pl, invars, rest] = utils.helper.collect_objects(varargin(:), 'plist'); - - pl = combine(pl, getDefaultPlist); - ids = pl.find('ids'); - hostname = pl.find('hostname'); - database = pl.find('database'); - username = pl.find('username'); - - % Check through 'rest' - if numel(rest) > 0 - ids = rest{1}; - end - if numel(rest) > 1 - hostname = rest{2}; - end - if numel(rest) > 2 - database = rest{3}; - end - if numel(rest) > 3 - username = rest{4}; - end - - % Some plausibility checks - if isempty(ids) - error('### This method needs at least one object id.'); - end - if nargout == 0 - error('### This method can not be used as a modifier method. Please give one output'); - end - - % Get complete experiment information for each input id - sinfo = []; - for ii=1:length(ids) - query = ['select name,experiment_title,experiment_desc,analysis_desc,quantity, '... - 'additional_authors,additional_comments,keywords,reference_ids FROM objmeta ' ... - sprintf('where objmeta.obj_id=%d',ids(ii))]; - - infoall = LTPDARepositoryManager.executeQuery(query, hostname, database, username); - if ~isempty(infoall) - s.name = infoall{1}; - s.experiment_title = infoall{2}; - s.experiment_description = infoall{3}; - s.analysis_description = infoall{4}; - s.quantity = infoall{5}; - s.additional_authors = infoall{6}; - s.additional_comments = infoall{7}; - s.keywords = infoall{8}; - s.reference_ids = infoall{9}; - sinfo = [sinfo s]; - else - warning('!!! Doesn''t find any submission information for the object id %d', ids(ii)); - end - end - - % Set output - varargout{1} = sinfo; - -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Local Functions % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getInfo -% -% DESCRIPTION: Returns the method-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.helper, '$Id: getSinfo.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $', sets, pl); -end - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% FUNCTION: getDefaultPlist -% -% DESCRIPTION: Returns the default PLIST -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function pl = getDefaultPlist() - - % Initialise plist - pl = plist(); - - % ids - p = param({'ids', 'Object identifications of which you need the submission information.'}, paramValue.EMPTY_DOUBLE); - pl.append(p); - - % 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 -
--- a/m-toolbox/classes/@LTPDARepositoryManager/listConnections.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -% LISTCONNECTIONS list all connections in the repository manager. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: LISTCONNECTIONS list all connections in the repository -% manager. -% -% CALL: rm.listConnections -% listConnections(rm) -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('listConnections').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: listConnections.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = listConnections(varargin) - - % Check if this is a call for parameters - if utils.helper.isinfocall(varargin{:}) - varargout{1} = getInfo(varargin{3}); - return - end - - rm = varargin{1}; - conns = rm.manager.getConnections; - for i=1:conns.size - conn = conns.get(i-1); - if (conn.isConnected) - message = sprintf('connected for %2.2f seconds', conn.ageConnected()); - else - message = 'not connected'; - end - disp(sprintf('%02d: %s@%s:%s [%s]', i, char(conn.getUsername), ... - char(conn.getHostname), char(conn.getDatabase), message)); - 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.internal, '$Id: listConnections.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $', sets, pl); - ii.setModifier(false); - ii.setOutmin(0); -end - -%-------------------------------------------------------------------------- -% Get Default Plist -%-------------------------------------------------------------------------- -function pl = getDefaultPlist() - pl = plist(); -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/newConnection.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -% NEWCONNECTION makes a new managed repository connection. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: NEWCONNECTION makes a new managed repository connection. -% -% CALL: conn = rm.newConnection(pl); -% conn = rm.newConnection('hostname'); -% conn = rm.newConnection('hostname', 'database'); -% conn = rm.newConnection('hostname', 'database', 'username'); -% conn = rm.newConnection('hostname', 'database', 'username', 'password'); -% -% If all required connection fields are input, the connection will be -% silently created and added to the manager. Otherwise, a connection dialog -% will be presented and the resulting connection added to the manager. -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('newConnection').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: newConnection.m,v 1.10 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = newConnection(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'); - password = pl.find('password'); - - % 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 - if numel(rest) > 3 - password = rest{4}; - end - - conn = rm.manager.findExactConnection(hostname, database, username); - - if ~isempty(conn) - if ~isempty(password) && isempty(char(conn.getPassword)) - conn.setPassword(password); - end - else - conn = rm.basic_newConnection(hostname, database, username, password); - end - - % my be it is necessary to update the GUI table - if ~isempty(rm.gui) - rm.gui.reloadConnectionTable(); - end - if ~isempty(rm.selector) - rm.selector.reloadConnectionTable(); - end - varargout{1} = conn; - -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: newConnection.m,v 1.10 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); - - % password - p = param({'password', 'The password to connect with. Leave this empty to be prompted on connection.'}, paramValue.EMPTY_STRING); - pl.append(p); - -end -
--- a/m-toolbox/classes/@LTPDARepositoryManager/resetTimer.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -% RESETTIMER resets the input timer. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: RESETTIMER resets the input timer. -% -% call: resetTimer(t) -% -% inputs t - timer object or the name of a timer. -% -% version: $Id: resetTimer.m,v 1.3 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function resetTimer(inputTimer, conn) - - if ischar(inputTimer) - inputTimer = timerfind('name', inputTimer); - end - - if isa(inputTimer, 'timer') - stop(inputTimer); - start(inputTimer); - end - - newTime = java.lang.System.currentTimeMillis(); - if nargin == 2 && isa(conn, 'mpipeline.repository.RepositoryConnection') - conn.setConnectedAt(newTime); - conn.setPasswordSetAt(newTime); - else - rm = LTPDARepositoryManager(); - conns = rm.manager.getConnections(); - for ii=1:conns.size - conn = conns.get(ii-1); - conn.setConnectedAt(newTime); - conn.setPasswordSetAt(newTime); - end - end - -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/showGui.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -% SHOWGUI opens a GUI which displays the repository manager. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DESCRIPTION: SHOWGUI opens a GUI which displays the repository manager. -% -% CALL: rm.showGui -% showGui(rm) -% -% <a href="matlab:web(LTPDARepositoryManager.getInfo('showGui').tohtml, '-helpbrowser')">Parameters Description</a> -% -% VERSION: $Id: showGui.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function varargout = showGui(varargin) - - % Check if this is a call for parameters - if utils.helper.isinfocall(varargin{:}) - varargout{1} = getInfo(varargin{3}); - return - end - - rm = varargin{1}; - if isempty(rm.gui) - rm.initGUI; - end - awtinvoke(rm.gui, 'setVisible', 'true'); -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: showGui.m,v 1.4 2011/04/08 08:56:35 hewitson Exp $', sets, pl); - ii.setModifier(false); - ii.setOutmin(0); -end - -%-------------------------------------------------------------------------- -% Get Default Plist -%-------------------------------------------------------------------------- -function pl = getDefaultPlist() - pl = plist(); -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/startTimer.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -% STARTTIMER returns a started timer. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: STARTTIMER returns a started timer. -% -% call: t = startTimer(name, fcn, period) -% -% inputs: name - name of the timer -% fcn - call back function of the timer -% period - period of the timer -% -% outputs: t - new timer object. -% -% version: $Id: startTimer.m,v 1.3 2011/02/03 13:44:02 ingo Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function t = startTimer(name, fcn, period) - - t = timerfind('name', name); - - if isempty(t) || (isa(t, 'timer') && ~isvalid(t)) - - t = timer(... - 'TimerFcn', fcn, ... - 'StartDelay', period, ... - 'Period', period, ... - 'ExecutionMode', 'fixedRate', ... - 'Name', name); - end - - % start the timer - if ~strcmp(get(t,'Running'), 'on') - start(t); - end - -end
--- a/m-toolbox/classes/@LTPDARepositoryManager/updatePrefs.m Mon Dec 05 16:20:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -% UPDATEPREFS updates the Repository Manager depending on the preferences. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% description: updates the Repository Manager depending on the preferences. -% -% call: rm = updatePrefs(rm, pl) -% -% version: $Id: updatePrefs.m,v 1.6 2011/03/28 12:45:45 hewitson Exp $ -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -function rm = updatePrefs(varargin) - - % Check if this is a call for parameters - if utils.helper.isinfocall(varargin{:}) - rm = getInfo(varargin{3}); - return - end - - utils.helper.msg(utils.const.msg.PROC1, 'Update expiry login time.'); - rm = varargin{1}; - - % Get timer for login expiry password - t = rm.timerClearPass; - - % Get pointer to the preferences - prefs = getappdata(0, 'LTPDApreferences'); - expiryTime = double(prefs.getRepoPrefs.getExpiry()); - - % Set the new expiry time to the repository manager - if isa(t, 'timer') - - % Check if the user have changed the expire time - if (t.Period ~= expiryTime) - - if strcmp(get(t,'Running'), 'on') - stop(t); - end - set(t, 'Period', expiryTime); - set(t, 'StartDelay', expiryTime); - start(t); - - else - % Do nothing if the user didn'T change the exire time - end - - else - t = LTPDARepositoryManager.startTimer('LTPDA_clearPassword', @LTPDARepositoryManager.cb_clearPassord, expiryTime); - rm.timerClearPass = t; - end - - % Set the host-names to the repository manager - jhosts = prefs.getRepoPrefs.getHostnames; - rm.manager.setRepoHosts(jhosts); - - % Resets the timers if a user make some changes to the preferences. - conns = rm.manager.getConnections; - for ii=1:conns.size - conn = conns.get(ii-1); - LTPDARepositoryManager.resetTimer(rm.timerClearPass, conn); - LTPDARepositoryManager.resetTimer(rm.timerDisconnect, conn); - 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.internal, '$Id: updatePrefs.m,v 1.6 2011/03/28 12:45:45 hewitson Exp $', sets, pl); -end - -%-------------------------------------------------------------------------- -% Get Default Plist -%-------------------------------------------------------------------------- -function pl = getDefaultPlist() - pl = plist(); -end