@Override
    public V put(IpPrefix prefix, V value) {

        String prefixString = getPrefixString(prefix);

        if (prefix.isIp4()) {
            return ipv4Tree.put(prefixString, value);
        }
        if (prefix.isIp6()) {
            return ipv6Tree.put(prefixString, value);
        }

        return null;
    }
@Test
    public void testPut() {
        radixTree.put(ipv4PrefixKey5, IPV4_PREFIX_VALUE_5);
        assertThat("Incorrect size of radix tree for IPv4 maps",
                radixTree.size(IpAddress.Version.INET), is(5));
        assertThat("IPv4 prefix key has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey5), is(5));

        radixTree.put(ipv6PrefixKey7, IPV6_PREFIX_VALUE_7);
        assertThat("Incorrect size of radix tree for IPv6 maps",
                radixTree.size(IpAddress.Version.INET6), is(7));
        assertThat("IPv6 prefix key has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey7), is(17));

        radixTree.put(ipv4PrefixKey1, 8801);
        assertThat("Incorrect size of radix tree for IPv4 maps",
                radixTree.size(IpAddress.Version.INET), is(5));
        assertThat("IPv4 prefix key has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey1), is(8801));
    }