0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 function objs = fromFile(obj, pli)
0018
0019 VERSION = '$Id: fromFile.m,v 1.3 2008/09/08 09:40:46 hewitson Exp $';
0020
0021
0022 if ischar(pli)
0023 pli = plist('filename', pli);
0024 end
0025
0026
0027 filename = find(pli, 'filename');
0028
0029
0030 [path, name, ext] = fileparts(filename);
0031
0032 switch ext
0033
0034 case '.fil'
0035 objs = obj.fromLISO(pli);
0036
0037 case '.mat'
0038 ii = obj.getInfo(class(obj), 'From MAT File');
0039 ii.setMversion([VERSION '-->' ii.mversion]);
0040 objs = load(filename);
0041
0042 if isstruct(objs) && isfield(objs, 'objs')
0043 scl = utils.helper.classFromStruct(objs.objs);
0044 if isempty(scl)
0045 error('### The structure does not match any LTPDA object.');
0046 end
0047 if ~strcmp(class(obj), scl)
0048 error('### The structure does not match the chosen LTPDA object constructor. It seems to be a [%s] object.', scl)
0049 end
0050 objs = feval(class(obj), objs.objs);
0051 objs.addHistory(ii, pli, [], []);
0052 elseif ismember('a', fieldnames(objs))
0053 objs = objs.a;
0054 objs.addHistory(ii, pli, [], []);
0055 elseif ismember('objs', fieldnames(objs))
0056 objs = objs.objs;
0057 objs.addHistory(ii, pli, [], []);
0058 else
0059 objs = obj.fromDataInMAT(objs, pli);
0060 end
0061
0062 case '.xml'
0063 root_node = xmlread(filename);
0064 objs = utils.helper.xmlread(root_node, class(obj));
0065
0066 case {'.txt', '.dat'}
0067
0068 objs = obj.fromDatafile(pli);
0069
0070 otherwise
0071 error('### Unknown file type [%s].', ext(2:end));
0072 end
0073
0074 end
0075