Mercurial > hg > ltpda
diff m-toolbox/classes/+utils/@jmysql/getsinfo.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children | 91f21a0aab35 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/+utils/@jmysql/getsinfo.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,79 @@ +% GETSINFO This function returns an sinfo object containing many useful information about an object retrieved from the repository +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% usage: sinfo = getsinfo(id, conn) +% +% inputs: id = obj_id from objmeta table +% conn = utils.mysql.connect(server, dbname); +% +% outputs: sinfo cell array object containing info about object having the +% given obj_id on the repository. +% sinfo contains the following fields: +% - name +% - experiment_title +% - experiment_desc +% - analysis_desc +% - quantity +% - additional_authors +% - additional_comments +% - keywords and reference_ids +% +% A Monsky 05-02-2009 +% +% version: $Id: getsinfo.m,v 1.2 2011/03/29 13:40:16 hewitson Exp $ +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [varargout] = getsinfo(varargin) + + import utils.const.* + utils.helper.msg(msg.PROC3, 'running %s/%s', mfilename('class'), mfilename); + + % Collect input variable names + in_names = cell(size(varargin)); + for ii = 1:nargin,in_names{ii} = inputname(ii);end + + % Collect all ids and plists and connections + pl = utils.helper.collect_objects(varargin(:), 'plist'); + id = utils.helper.collect_objects(varargin(:), 'double'); + conn = utils.helper.collect_objects(varargin(:), 'mpipeline.repository.RepositoryConnection'); + + if isempty(conn) + error('### This method needs a java connection (mpipeline.repository.RepositoryConnection).'); + end + + if isempty(id) + error('### This method needs at least one object id.'); + end + + if nargout == 0 + error('### lscov can not be used as a modifier method. Please give at least one output'); + end + + % combine plists + pl = combine(pl, plist()); + + % Algorithm + % Get complete experiment information for each input id + sinfo = []; + for ii=1:length(id) + qall = ['select name,experiment_title,experiment_desc,analysis_desc,quantity, '... + 'additional_authors,additional_comments,keywords,reference_ids FROM objmeta ' ... + sprintf('where objmeta.obj_id=%d',id(ii))]; + + infoall = utils.jmysql.dbquery(conn, qall); + s.conn = conn; + 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]; + end + + % Set output + varargout{1} = sinfo; +end