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.html,v 1.14 2008/03/31 10:27:45 hewitson 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.html,v 1.14 2008/03/31 10:27:45 hewitson Exp $
0012 %
0013 % HISTORY:      07-05-2007 M Hewitson
0014 %                  Creation
0015 %
0016 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0017 
0018 VERSION  = '$Id: provenance.html,v 1.14 2008/03/31 10:27:45 hewitson 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 parameter list %%%%%%%%%%%%%%%
0084   elseif isa(varargin{1}, 'plist')
0085 
0086     %% is the plist is empty then return an empty provenance object
0087     if nparams(varargin{1}) == 0
0088       p = provenance();
0089       return
0090     else
0091 
0092       creator = find(varargin{1}, 'creator');
0093       creator = strcat('Recreate from: ', creator);
0094       p = provenance(creator);
0095       return
0096     end
0097 
0098   else
0099     error('### incorrect inputs');
0100   end
0101 end
0102 created = time;
0103 
0104 %--------------------------------------------------------------------------
0105 % User Info
0106 %
0107 try
0108   if isempty(creator)
0109     creator = char(java.lang.System.getProperties.getProperty('user.name'));
0110   end
0111 catch
0112   creator = 'unknown';
0113 end
0114 
0115 %--------------------------------------------------------------------------
0116 % Machine Info
0117 %
0118 ipaddress = char(getHostAddress(java.net.InetAddress.getLocalHost));
0119 hostname  = char(getHostName(java.net.InetAddress.getLocalHost));
0120 os        = computer;
0121 
0122 %--------------------------------------------------------------------------
0123 % Process software versions
0124 %
0125 
0126 matlab_version  = getappdata(0, 'matlab_version');
0127 sigproc_version = getappdata(0, 'sigproc_version');
0128 ltpda_version   = getappdata(0, 'ltpda_version');
0129 
0130 %--------------------------------------------------------------------------
0131 % Make provenance object
0132 %
0133 
0134 p.creator         = creator;
0135 p.created         = created;
0136 p.ip              = ipaddress;
0137 p.hostname        = hostname;
0138 p.os              = os;
0139 p.matlab_version  = matlab_version;
0140 p.sigproc_version = sigproc_version;
0141 p.ltpda_version   = ltpda_version;
0142 p = class(p, 'provenance');
0143 
0144 % END

Generated on Mon 31-Mar-2008 12:20:24 by m2html © 2003