code: public <E extends T> Iterable<E> createView (final Iterable<E> input)
      {
          return new Iterable<E>() {
              public Iterator<E> iterator() {
                  return filter(input.iterator());
              }
          };
      }
docs: Create an Iterable view of the specified Iterable that only contains
  elements that match the predicate.
  This Iterable can be iterated over at any time in the future to
  view the current predicate-matching elements of the input Iterable.