in src/main/java/net/hydromatic/linq4j/LookupImpl.java [205:242]
public Enumerable<V> valuesEnumerable() {
return new AbstractEnumerable<V>() {
public Enumerator<V> enumerator() {
final Enumerator<Enumerable<V>> listEnumerator =
Linq4j.iterableEnumerator(values());
return new Enumerator<V>() {
Enumerator<V> enumerator = Linq4j.emptyEnumerator();
public V current() {
return enumerator.current();
}
public boolean moveNext() {
for (;;) {
if (enumerator.moveNext()) {
return true;
}
enumerator.close();
if (!listEnumerator.moveNext()) {
enumerator = Linq4j.emptyEnumerator();
return false;
}
enumerator = listEnumerator.current().enumerator();
}
}
public void reset() {
listEnumerator.reset();
enumerator = Linq4j.emptyEnumerator();
}
public void close() {
enumerator.close();
}
};
}
};
}