line source
% GENERATECONSTRUCTORPLIST generates a PLIST from the properties which can rebuild the object.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DESCRIPTION: GENERATECONSTRUCTORPLIST generates a PLIST from the
% properties which can rebuild the object.
%
% CALL: pl = obj.generateConstructorPlist();
%
% <a href="matlab:utils.helper.displayMethodInfo('ao', 'generateConstructorPlist')">Parameters Description</a>
%
% VERSION: $Id: generateConstructorPlist.m,v 1.4 2011/04/08 08:56:25 hewitson Exp $
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pl = generateConstructorPlist(varargin)
% Check if this is a call for parameters
if utils.helper.isinfocall(varargin{:})
pl = getInfo(varargin{3});
return
end
obj = varargin{1};
pl = plist();
% Add procinfo
appendProperty(pl, obj, 'procinfo');
% Add plotinfo
appendProperty(pl, obj, 'plotinfo');
% Add name
appendProperty(pl, obj, 'name', false);
% Add description
appendProperty(pl, obj, 'description');
% Add dy
appendProperty(pl, obj, 'dy');
% Add y
appendProperty(pl, obj, 'y');
% Add names
appendProperty(pl, obj, 'names');
% Add yunits
appendProperty(pl, obj, 'yunits');
% Add pdf
appendProperty(pl, obj, 'pdf');
% Add cov
appendProperty(pl, obj, 'cov');
% Add corr
appendProperty(pl, obj, 'corr');
% Add chi2
appendProperty(pl, obj, 'chi2');
% Add dof
appendProperty(pl, obj, 'dof');
% Add chain
appendProperty(pl, obj, 'chain');
% Add models
appendProperty(pl, obj, 'models');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Local Functions %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FUNCTION: appendProperty
%
% CALL: appendProperty(pl, obj, propName)
% appendProperty(pl, obj, propName, isemptyCheck)
%
% DESCRIPTION: Get Info Object
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function appendProperty(pl, obj, propName, isemptyCheck)
if nargin <= 3
isemptyCheck = true;
end
if isemptyCheck
if ~isempty(obj.(propName))
pl.append(propName, obj.(propName));
else
% Don't append the property to the PLIST
end
else
pl.append(propName, obj.(propName));
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FUNCTION: getInfo
%
% DESCRIPTION: Get Info Object
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ii = getInfo(varargin)
if nargin == 1 && strcmpi(varargin{1}, 'None')
sets = {};
pl = [];
else
sets = {'Default'};
pl = getDefaultPlist;
end
% Build info object
ii = minfo(mfilename, 'ao', 'ltpda', utils.const.categories.internal, '$Id: generateConstructorPlist.m,v 1.4 2011/04/08 08:56:25 hewitson Exp $', sets, pl);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FUNCTION: getDefaultPlist
%
% DESCRIPTION: Get Default Plist
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function plout = getDefaultPlist()
persistent pl;
if exist('pl', 'var')==0 || isempty(pl)
pl = buildplist();
end
plout = pl;
end
function plo = buildplist()
plo = plist.EMPTY_PLIST;
end