function val = subsref(hash, s) % Subscripted assignment for object Hashtable % Subscripted assignment for object dynaload % overloading subscripted reference for objects % Dot Notation vs. Function Notation % % ex: h = Hashtable('key', value) % value = h.key % value = h('key') % if value is a structure, get field value: % fvalue = h.key.field % see help from substruct and subsref % % $Id$ switch (length(s)) case 2 switch s(1).type case '.' % get object with key 's(1).subs' in hash % --------------------------------------- val = get(hash, s(1).subs); % assume that val is a structure % ------------------------------ if isstruct(val) val = val.(s(2).subs); else error('object for key: %s not a valid struct object.', s(2).subs) end otherwise error('Invalid type.') end case 1 switch s.type case '()' if (length(index.subs) ~= 1) error('Only single indexing is supported.'); end val = get(hash,s.subs{1}); case '.' val = get(hash,s.subs); otherwise error('Invalid type.') end end