docs: public static <TargetType> Collection<TargetType> filterCollectionByClass(Collection<?> source,
              final Class<TargetType> clazz) {
          Collection<?> filtered = Collections2.filter(source, new Predicate<Object>() {
              @Override
              public boolean apply(Object input) {
                  return clazz.isInstance(input);
              }
          });
          return Collections2.transform(filtered, new Function<Object, TargetType>() {
              @SuppressWarnings("unchecked")
              @Override
              public TargetType apply(Object input) {
                  return (TargetType) input;
              }
          });
      }