diff Map.m @ 414:50fd7e88aa74 feature/better_map

Add a test implementation
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 02 Feb 2017 15:57:43 +0100
parents
children 16907bf31e67
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Map.m	Thu Feb 02 15:57:43 2017 +0100
@@ -0,0 +1,58 @@
+classdef Map < handle
+    properties
+        map
+    end
+
+    % can we support multi map using varargin?
+
+    methods
+        function obj = Map()
+            obj.map = containers.Map()
+        end
+
+        function set(obj, k, v)
+            keyByteStream = getByteStreamFromArray(k);
+
+            obj.map(char(keyByteStream)) = v;
+        end
+
+        function v = get(obj, k)
+            keyByteStream = getByteStreamFromArray(k);
+
+            v = obj.map(char(keyByteStream));
+        end
+
+        function b = isKey(obj, k)
+            keyByteStream = getByteStreamFromArray(k);
+            b = obj.map.isKey(keyByteStream);
+        end
+
+        function c = keys(obj)
+            keyByteStreams = obj.map.keys;
+
+            n = length(keyByteStreams);
+
+            c = cell(1, n);
+            for i = 1:n
+                c{i} = getArrayFromByteStream(uint8(keyByteStreams{i}));
+            end
+        end
+
+        function l = length(obj)
+            l = obj.map.length;
+        end
+
+        function remove(obj, k)
+            keyByteStream = getByteStreamFromArray(k);
+            obj.map.remove(char(keyByteStream));
+        end
+
+        function s = size(obj)
+            s = obj.map.size;
+        end
+
+        function c = values(obj)
+            c = obj.map.values;
+        end
+    end
+end