www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cglookup/loadobj.m
function obj = loadobj(obj) %LOADOBJ Laod-time reconstruction of cglookup % % OBJ = LOADOBJ(OBJ) is called during the loading of cglookup objects. % Copyright 2000-2015 The MathWorks, Inc. and Ford Global Technologies, Inc. if isstruct(obj) && ~isfield(obj,'version'); % Version 1 had no version field obj.sizelocks = guidarray(0); obj.version = 2; end if obj.version<3 % Add new fields to support extrapolation procedures for all tables obj.ExtrapolationMask = true(0); obj.ExtrapolationRegions = true(0); obj.version = 3; end if obj.version<4 % Add a post load function that checks feature and table links. The % date number is datenum('1-December-2004'). hLoad = mbcloadrecorder('current'); hLoad.addSingleton(@i_checklinks, 732282); end if obj.version<5 obj.UseLocksInExtrapolation = true; obj.version = 5; end if obj.version<6 if isfield(obj,'UserData') ud = obj.UserData; % make sure that UserData is added to the end of the property list obj = rmfield(obj,'UserData'); else ud = []; end obj.UserData = ud; obj.version = 6; end % If the object came in as a structure it needs to be turned back into a % class by the constructor if isstruct(obj) obj = cglookup(obj); end function i_checklinks(Proj, evt) ptrs = evt.LoadedPointers; % Only update data that has not been deleted by another post-load process ptrs = ptrs(isvalid(ptrs)); % Get all data and find cglookups data = infoarray(ptrs); DoUpdate = false(size(data)); for n = 1:numel(data) if isa(data{n}, 'cglookup') data{n} = checkLinks(data{n}); DoUpdate(n) = true; end end passign(ptrs(DoUpdate), data(DoUpdate));