code: public static <E, S extends Set<E>> UnmodifiableMutableSet<E> of(S set)
      {
          if (set == null)
          {
              throw new IllegalArgumentException("cannot create an UnmodifiableMutableSet for null");
          }
          return new UnmodifiableMutableSet<E>(SetAdapter.adapt(set));
      }
docs: This method will take a MutableSet and wrap it directly in a UnmodifiableMutableSet.  It will
  take any other non-GS-set and first adapt it will a SetAdapter, and then return a
  UnmodifiableMutableSet that wraps the adapter.