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

Generated on Fri 07-Mar-2008 15:46:43 by m2html © 2003