/guava/guava/src/com/google/common/collect/Iterators.java
iterator ;
iterator = emptyIterator ( ) ;
private static class ConcatenatedIterator<T extends @Nullable Object> implements Iterator<T> { @CheckForNull private Iterator<? extends T> toRemove; private Iterator<? extends T> iterator; @CheckForNull private Iterator<? extends Iterator<? extends T>> topMetaIterator; @CheckForNull private Deque<Iterator<? extends Iterator<? extends T>>> metaIterators; ConcatenatedIterator(Iterator<? extends Iterator<? extends T>> metaIterator) { <extra_id_0> topMetaIterator = checkNotNull(metaIterator); } @CheckForNull private Iterator<? extends Iterator<? extends T>> getTopMetaIterator() { while (topMetaIterator == null || !topMetaIterator.hasNext()) { if (metaIterators != null && !metaIterators.isEmpty()) {