function varargout = get(tpl,action,varargin)
%TEMPLATE/GET Access data stored in a Template object
% TPL = GET(TPL,ACTION,VARARGIN)
% ACTION 'var'
% ACTION 'undefined'
% Copyright (C) 2003 Guillaume Flandin <Guillaume@artefact.tk>
% $Revision: 1.0 $Date: 2003/05/05 22:19:51 $
narginchk(2,3);
switch lower(action)
case 'var'
narginchk(2,3);
if nargin == 2
varargout{1} = tpl.varvals;
elseif iscellstr(varargin{1})
varargout{1} = {};
for i=1:length(varargin{1})
key = find(ismember(tpl.varkeys,varargin{1}{i}));
if isempty(key)
%error('[Template] No such variable name.');
varargout{1}{end+1} = '';
else
varargout{1}{end+1} = tpl.varvals{key};
end
end
elseif ischar(varargin{1})
varargout{1} = char(get(tpl,'var',cellstr(varargin{1})));
else
varargout{1} = '';
end
case 'undefined'
narginchk(3,3);
tpl = loadtpl(tpl,varargin{1});
str = get(tpl,'var',varargin{1});
varargout{1} = {};
%%%%%%%%%%%%%%%%%%%%%%%% WIH REGEXP ONLY %%%%%%%%%%%%%%%%%%%%
% [b, e] = regexp(str,'{[^ \t\r\n}]+}');
% for i=1:length(b)
% if ~any(ismember(tpl.varkeys,str(b(i)+1:e(i)-1)))
% varargout{1}{end+1} = str(b(i)+1:e(i)-1);
% end
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
otherwise
varargout{1} = finish(get(tpl,'var',action),tpl.unknowns);
end