code: public static <T> List<T> filter( Iterable<T> collection, Predicate<T> predicate)
      {
          List<T> filtered = new ArrayList<T>();
          for (T element : collection)
          {
          	if (predicate.isVerifiedBy(element))
          	{
          		filtered.add(element);
          	}
          }
          return filtered;
      }
docs: <p>filter.</p>
  
  @param collection a {@link java.lang.Iterable} object.
  @param predicate a {@link com.greenpepper.util.CollectionUtil.Predicate} object.
  @param <T> a T object.
  @return a {@link java.util.List} object.