0001 function parent = dsGetParentNamespace(namespace, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 options = dsCheckOptions(varargin,{'auto_gen_test_data_flag',0,{0,1}},false);
0025 if options.auto_gen_test_data_flag
0026 varargs = varargin;
0027 varargs{find(strcmp(varargs, 'auto_gen_test_data_flag'))+1} = 0;
0028 varargs(end+1:end+2) = {'unit_test_flag',1};
0029 argin = [{namespace}, varargs];
0030 end
0031
0032
0033 if isempty(namespace) && isnumeric(namespace)
0034 namespace='';
0035 end
0036 if ~isempty(namespace) && namespace(end)=='_'
0037 namespace=namespace(1:end-1);
0038 end
0039 if ~isempty(namespace)
0040 parts=regexp(namespace,'_','split');
0041 else
0042 parts=[];
0043 end
0044
0045 switch length(parts)
0046 case 0
0047 parent='global';
0048 case 1
0049 parent='';
0050 case 2
0051 if isequal(parts{1},parts{2})
0052 parent='global';
0053 else
0054 parent=[parts{1} '_'];
0055 end
0056 case 3
0057 parent=[parts{1} '_' parts{2} '_'];
0058 otherwise
0059 parent='';
0060 for i=1:length(parts)-1
0061 parent=[parent parts{i} '_'];
0062 end
0063 end
0064
0065
0066 if options.auto_gen_test_data_flag
0067 argout = {parent};
0068
0069 dsUnitSaveAutoGenTestData(argin, argout);
0070 end