code: public static <K, V> ImmutableBiMap<K, V> copyOf(
        Map<? extends K, ? extends V> map) {
      if (map instanceof ImmutableBiMap) {
        @SuppressWarnings("unchecked") // safe since map is not writable
        ImmutableBiMap<K, V> bimap = (ImmutableBiMap<K, V>) map;
        // TODO(user): if we need to make a copy of a BiMap because the
        // forward map is a view, don't make a copy of the non-view delegate map
        if (!bimap.isPartialView()) {
          return bimap;
        }
      }
      return copyOf(map.entrySet());
    }
docs: Returns an immutable bimap containing the same entries as {@code map}. If
  {@code map} somehow contains entries with duplicate keys (for example, if
  it is a {@code SortedMap} whose comparator is not <i>consistent with
  equals</i>), the results of this method are undefined.
  
  <p>Despite the method name, this method attempts to avoid actually copying
  the data when it is safe to do so. The exact circumstances under which a
  copy will or will not be performed are undocumented and subject to change.
  
  @throws IllegalArgumentException if two keys have the same value
  @throws NullPointerException if any key or value in {@code map} is null