view m-toolbox/classes/+utils/@mysql/getXdoc.m @ 44:409a22968d5e
default
Add unit tests
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Tue, 06 Dec 2011 18:42:11 +0100 (2011-12-06)
parents
f0afece42f48
children
line source
+ − % GETXDOC retrieves an object with given id from the LTPDA
+ − % repository specified by the input database connection. The object is
+ − % converted from its XML text format to an Xdoc. This can then be converted
+ − % into an object using the appropriate object constructor.
+ − %
+ − % Usage: xdoc = getXdoc(conn, id)
+ − %
+ − % Inputs:
+ − % conn - a database connection object
+ − % id - the object id
+ − %
+ − % Outputs:
+ − % xdoc - an Xdoc representation of the object.
+ − %
+ − % M Hewitson 30-08-07
+ − %
+ − % $Id: getXdoc.m,v 1.3 2010/01/22 12:46:08 ingo Exp $
+ − %
+ − %
+ −
+ − function xdoc = getXdoc(conn, id)
+ −
+ − error('### Obsolete as of LTPDA version 2.2. Replaced my the utils class jmysql (utils.jmysql.%s)', mfilename());
+ −
+ − try
+ − curs = exec(conn, sprintf('select xml from objs where id="%d"', id));
+ − curs = fetch(curs);
+ − objTxt = char([curs.Data{1}].');
+ − close(curs);
+ − catch
+ − error('### Unable to read xml for ID %d. Server returned %s', id, curs.Message);
+ − end
+ −
+ − if ~isempty(objTxt) && ~strcmp(objTxt(:), 'No Data')
+ − % convert to Java string
+ − str = java.lang.String(objTxt);
+ − % open stream on this string
+ − stream = java.io.StringBufferInputStream(str);
+ − % make parser
+ − builder = javax.xml.parsers.DocumentBuilderFactory.newInstance.newDocumentBuilder;
+ −
+ − xdoc = builder.parse(stream);
+ − else
+ − xdoc = [];
+ − end
+ −
+ − end
+ −