Class MinimalIterable<E extends @Nullable Object>
java.lang.Object
com.google.common.collect.testing.MinimalIterable<E>
- All Implemented Interfaces:
Iterable<E>
@GwtCompatible
public final class MinimalIterable<E extends @Nullable Object>
extends Object
implements Iterable<E>
An implementation of
Iterable
which throws an exception on all invocations of the iterator()
method after the first, and whose iterator is always unmodifiable.
The Iterable
specification does not make it absolutely clear what should happen on a
second invocation, so implementors have made various choices, including:
- returning the same iterator again
- throwing an exception of some kind
- or the usual, robust behavior, which all known
Collection
implementations have, of returning a new, independent iterator
Because of this situation, any public method accepting an iterable should invoke the
iterator
method only once, and should be tested using this class. Exceptions to this rule should
be clearly documented.
Note that although your APIs should be liberal in what they accept, your methods which return iterables should make every attempt to return ones of the robust variety.
This testing utility is not thread-safe.
- Author:
- Kevin Bourrillion
-
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends @Nullable Object>
MinimalIterable<E> from
(Collection<E> elements) Returns an iterable whose iterator returns the given elements in order.iterator()
static <E extends @Nullable Object>
MinimalIterable<E> of
(E... elements) Returns an iterable whose iterator returns the given elements in order.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
of
Returns an iterable whose iterator returns the given elements in order. -
from
Returns an iterable whose iterator returns the given elements in order. The elements are copied out of the source collection at the time this method is called. -
iterator
-