code: @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);
        }
     }
docs: Retrieves an atomic map from a given cache, stored under a given key.
  
  
  @param cache          underlying cache
  @param key            key under which the atomic map exists
  @param createIfAbsent if true, a new atomic map is created if one doesn't exist; otherwise null is returned if the
  map didn't exist.
  @param fineGrained    if true, and createIfAbsent is true then created atomic map will be fine grained.
  @return an AtomicMap, or null if one did not exist.