code: public static <T> CloseableIterable<T> filter(final CloseableIterable<?> iterable, final Class<T> type) {
          return wrap(Iterables.filter(iterable, type), iterable);
      }
docs: Returns all instances of class {@code type} in {@code unfiltered}. The
  returned closeable iterable has elements whose class is {@code type} or a subclass of
  {@code type}. The returned iterable's iterator does not support
  {@code remove()}.