Home > classes > @provenance > provenance.m

provenance

PURPOSE ^

PROVENANCE constructors for provenance class.

SYNOPSIS ^

function p = provenance(varargin)

DESCRIPTION ^

 PROVENANCE constructors for provenance class.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION:  PROVENANCE constructors for provenance class.

 CONSTRUCTORS: p = provenance();
               p = provenance('creator');

 VERSION:      $Id: provenance.m,v 1.13 2007/10/19 13:10:03 ingo Exp $

 HISTORY:      07-05-2007 M Hewitson
                  Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function p = provenance(varargin)
0002 % PROVENANCE constructors for provenance class.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION:  PROVENANCE constructors for provenance class.
0007 %
0008 % CONSTRUCTORS: p = provenance();
0009 %               p = provenance('creator');
0010 %
0011 % VERSION:      $Id: provenance.m,v 1.13 2007/10/19 13:10:03 ingo Exp $
0012 %
0013 % HISTORY:      07-05-2007 M Hewitson
0014 %                  Creation
0015 %
0016 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0017 
0018 ALGONAME = mfilename;
0019 VERSION  = '$Id: provenance.m,v 1.13 2007/10/19 13:10:03 ingo Exp $';
0020 
0021 if nargin == 2
0022   if isa(varargin{1}, 'database')
0023     p = retrieve(varargin{1}, varargin{2:end});
0024     return
0025   else
0026     error('### Incorrect provenance constructor.');
0027   end
0028 
0029 elseif nargin == 1
0030 
0031   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0032   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0033     p = fromxml(varargin{1});
0034     return
0035   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0036   elseif ischar(varargin{1})
0037 
0038     filename = varargin{1};
0039     [path, name, ext, vers] = fileparts(filename);
0040 
0041     if ~isempty(ext)
0042       switch ext
0043         case '.mat'
0044           p = load(filename);
0045         case '.xml'
0046           p = xmlparse(provenance, filename);
0047         otherwise
0048           error('### Unknown file type.');
0049       end
0050       return
0051     else
0052       % Set creator
0053       creator = varargin{1};
0054     end
0055   %%%%%%%%%% Create from structure %%%%%%%%%%%%%%%
0056   elseif isstruct(varargin{1})
0057 
0058     p = class(varargin{1}, 'provenance');
0059     return
0060   else
0061     error('### incorrect inputs');
0062   end
0063 else
0064   creator = 'unknown';
0065 end
0066 created = time;
0067 
0068 %--------------------------------------------------------------------------
0069 % User Info
0070 %
0071 try
0072   creator = char(java.lang.System.getProperties.getProperty('user.name'));
0073 catch
0074   creator = 'unknown';
0075 end
0076 
0077 %--------------------------------------------------------------------------
0078 % Machine Info
0079 %
0080 ipaddress = char(getHostAddress(java.net.InetAddress.getLocalHost));
0081 hostname  = char(getHostName(java.net.InetAddress.getLocalHost));
0082 os        = computer;
0083 
0084 %--------------------------------------------------------------------------
0085 % Process software versions
0086 %
0087 
0088 matlab_version  = getappdata(0, 'matlab_version');
0089 sigproc_version = getappdata(0, 'sigproc_version');
0090 ltpda_version   = getappdata(0, 'ltpda_version');
0091 
0092 %--------------------------------------------------------------------------
0093 % Make provenance object
0094 %
0095 
0096 p.creator         = creator;
0097 p.created         = created;
0098 p.ip              = ipaddress;
0099 p.hostname        = hostname;
0100 p.os              = os;
0101 p.matlab_version  = matlab_version;
0102 p.sigproc_version = sigproc_version;
0103 p.ltpda_version   = ltpda_version;
0104 p = class(p, 'provenance');
0105 
0106 % END

Generated on Thu 01-Nov-2007 09:42:34 by m2html © 2003