www.gusucode.com > mbc 工具箱 matlab 源码程序 > mbc/@mbcfoundation/@propertycollection/PersistentStore.m

    function [p,OK] = PersistentStore(p,ID)
%PERSISTENTSTORE - private function

% [p,OK] = PersistentStore(p,ID) get object from store
% PersistentStore(p,ID) add to store

%  Copyright 2007-2016 The MathWorks, Inc.

persistent PROPS DOSTORE

cls = strrep(class(p),'mbcmodel.','');
ID = mbcMakeValidName([cls,'_',ID]);
if nargout == 0 && DOSTORE
    PROPS.(ID) = p;
elseif isfield(PROPS,ID)
    obj = PROPS.(ID);
    DOSTORE = isempty(p.ObjectProperties);
    OK = DOSTORE && IsReusable(p,obj);
    if OK
        obj.Object = p.Object;
        p = obj;
    end
else
    DOSTORE = isempty(p.ObjectProperties);
    OK = false;
end
end