diff options
| author | Joel Martin <github@martintribe.org> | 2015-02-09 23:20:23 -0600 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2015-02-10 01:46:17 -0600 |
| commit | 6a572dff25a95f460d1b3c1b259c7a0a1f10c2d0 (patch) | |
| tree | e680af55f0b6b02eaf86fb7a5a384b9b364c6942 /matlab/+types/HashMap.m | |
| parent | 7f567f36457b937c36345becdb7c1101566dcdf3 (diff) | |
| download | mal-6a572dff25a95f460d1b3c1b259c7a0a1f10c2d0.tar.gz mal-6a572dff25a95f460d1b3c1b259c7a0a1f10c2d0.zip | |
matlab: add keyword, vector, hash-map support.
Switch List to full object like vector and hash-map.
Diffstat (limited to 'matlab/+types/HashMap.m')
| -rw-r--r-- | matlab/+types/HashMap.m | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/matlab/+types/HashMap.m b/matlab/+types/HashMap.m new file mode 100644 index 0000000..f48ba81 --- /dev/null +++ b/matlab/+types/HashMap.m @@ -0,0 +1,47 @@ +classdef HashMap < handle + properties + data = containers.Map(); + meta = types.nil; + end + methods + function obj = HashMap(varargin) + if nargin == 0 + obj.data = containers.Map(); + else + obj.data = containers.Map(varargin(1:2:end), ... + varargin(2:2:end)); + end + end + + function len = length(obj) + len = length(obj.data); + end + + function ret = get(obj, key) + ret = obj.data(key); + end + + function ret = set(obj, key, val) + obj.data(key) = val; + ret = val; + end + + function ret = keys(obj) + ret = obj.data.keys(); + end + + function ret = values(obj) + ret = obj.data.values(); + end + + function ret = clone(obj) + ret = types.HashMap(); + if length(obj) > 0 + ret.data = containers.Map(obj.data.keys(), obj.data.values()); + else + ret.data = containers.Map(); + end + ret.meta = obj.meta; + end + end +end |
