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.16 2008/01/07 13:54:11 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.16 2008/01/07 13:54:11 ingo Exp $
0012 %
0013 % HISTORY:      07-05-2007 M Hewitson
0014 %                  Creation
0015 %
0016 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0017 
0018 VERSION  = '$Id: provenance.m,v 1.16 2008/01/07 13:54:11 ingo Exp $';
0019 creator  = [];
0020 
0021 %%%%%   Check if this is a call for parameters   %%%%%
0022 if nargin == 2
0023   if isa(varargin{1}, 'provenance') && ischar(varargin{2})
0024     in = char(varargin{2});
0025     if strcmp(in, 'Params')
0026       p = plist;
0027       return
0028     elseif strcmp(in, 'Version')
0029       p = VERSION;
0030       return
0031     end
0032   end
0033 end
0034 
0035 %%%%%%%%%%% From DATABASE %%%%%%%%%%%%%%%%
0036 if nargin == 2
0037   if isa(varargin{1}, 'database')
0038     p = retrieve(varargin{1}, varargin{2:end});
0039     return
0040   else
0041     error('### Incorrect provenance constructor.');
0042   end
0043 
0044 elseif nargin == 1
0045 
0046   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0047   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0048     p = fromxml(varargin{1});
0049     return
0050   %%%%%%%%%%   p = provenance(provenance)   %%%%%%%%%%
0051   elseif isa(varargin{1}, 'provenance')
0052     p = varargin{1};
0053     return
0054   %%%%%%%%%%% From File %%%%%%%%%%%%%%%%
0055   elseif ischar(varargin{1})
0056 
0057     filename = varargin{1};
0058     [path, name, ext, vers] = fileparts(filename);
0059 
0060     if ~isempty(ext)
0061       switch ext
0062         case '.mat'
0063           p = load(filename);
0064           p = p.a;
0065         case '.xml'
0066           p = xmlparse(provenance, filename);
0067         otherwise
0068           error('### Unknown file type.');
0069       end
0070       return
0071     else
0072       % Set creator
0073       creator = varargin{1};
0074     end
0075   %%%%%%%%%% Create from structure %%%%%%%%%%%%%%%
0076   elseif isstruct(varargin{1})
0077 
0078     p = class(varargin{1}, 'provenance');
0079     return
0080   else
0081     error('### incorrect inputs');
0082   end
0083 end
0084 created = time;
0085 
0086 %--------------------------------------------------------------------------
0087 % User Info
0088 %
0089 try
0090   if isempty(creator)
0091     creator = char(java.lang.System.getProperties.getProperty('user.name'));
0092   end
0093 catch
0094   creator = 'unknown';
0095 end
0096 
0097 %--------------------------------------------------------------------------
0098 % Machine Info
0099 %
0100 ipaddress = char(getHostAddress(java.net.InetAddress.getLocalHost));
0101 hostname  = char(getHostName(java.net.InetAddress.getLocalHost));
0102 os        = computer;
0103 
0104 %--------------------------------------------------------------------------
0105 % Process software versions
0106 %
0107 
0108 matlab_version  = getappdata(0, 'matlab_version');
0109 sigproc_version = getappdata(0, 'sigproc_version');
0110 ltpda_version   = getappdata(0, 'ltpda_version');
0111 
0112 %--------------------------------------------------------------------------
0113 % Make provenance object
0114 %
0115 
0116 p.creator         = creator;
0117 p.created         = created;
0118 p.ip              = ipaddress;
0119 p.hostname        = hostname;
0120 p.os              = os;
0121 p.matlab_version  = matlab_version;
0122 p.sigproc_version = sigproc_version;
0123 p.ltpda_version   = ltpda_version;
0124 p = class(p, 'provenance');
0125 
0126 % END

Generated on Tue 22-Jan-2008 10:39:13 by m2html © 2003