docs: @SuppressWarnings("unchecked")
     private static <MK, K, V> Map<K, V> getMap(Cache<MK, Object> cache, MK key, boolean createIfAbsent, boolean fineGrained) {
        if (fineGrained) {
           // With fine grained maps the cache will store both the keyset under master key and the entries under group keys
           return FineGrainedAtomicMapProxyImpl.newInstance((Cache<Object, Object>) cache, key, createIfAbsent);
        } else {
           return AtomicMapProxyImpl.newInstance(cache, key, createIfAbsent);
        }
     }