view 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 source

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