@Test public void shouldHaveMany() { final Predicate<Integer> terminate = t -> 3 == t; final Function<Integer, Integer> traverse = t -> t + 1; assertThat(over(0, terminate, traverse), contains(0, 1, 2)); }
@Nonnull public static <T> Iterable<T> over(@Nullable final T head, @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse) { return new LinkedIterable<>(head, terminate, traverse); }
LinkedIterable implements Iterable<T> { @Nonnull public static <T> Iterable<T> over(@Nullable final T head, @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse) { return new LinkedIterable<>(head, terminate, traverse); } }
LinkedIterable implements Iterable<T> { @Nonnull public static <T> Iterable<T> over(@Nullable final T head, @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse) { return new LinkedIterable<>(head, terminate, traverse); } private  LinkedIterable(final T head, final Predicate<T> terminate,
            final Function<T, T> traverse); }
LinkedIterable implements Iterable<T> { @Nonnull public static <T> Iterable<T> over(@Nullable final T head, @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse) { return new LinkedIterable<>(head, terminate, traverse); } private  LinkedIterable(final T head, final Predicate<T> terminate,
            final Function<T, T> traverse); @Nonnull static Iterable<T> over(@Nullable final T head,
            @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse); @Nonnull static Iterable<T> over(@Nonnull final Predicate<T> terminate,
            @Nonnull final Function<T, T> traverse); @Override Iterator<T> iterator(); @Override Spliterator<T> spliterator(); }
LinkedIterable implements Iterable<T> { @Nonnull public static <T> Iterable<T> over(@Nullable final T head, @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse) { return new LinkedIterable<>(head, terminate, traverse); } private  LinkedIterable(final T head, final Predicate<T> terminate,
            final Function<T, T> traverse); @Nonnull static Iterable<T> over(@Nullable final T head,
            @Nonnull final Predicate<T> terminate, @Nonnull final Function<T, T> traverse); @Nonnull static Iterable<T> over(@Nonnull final Predicate<T> terminate,
            @Nonnull final Function<T, T> traverse); @Override Iterator<T> iterator(); @Override Spliterator<T> spliterator(); static final int SPLITERATOR_CHARACTERISTICS; }