in harry-core/src/harry/ddl/SchemaSpec.java [417:470]
public static <T> Iterable<T> concat(Iterable<T>... iterables)
{
assert iterables != null && iterables.length > 0;
if (iterables.length == 1)
return iterables[0];
return () -> {
return new Iterator<T>()
{
int idx;
Iterator<T> current;
boolean hasNext;
{
idx = 0;
prepareNext();
}
private void prepareNext()
{
if (current != null && current.hasNext())
{
hasNext = true;
return;
}
while (idx < iterables.length)
{
current = iterables[idx].iterator();
idx++;
if (current.hasNext())
{
hasNext = true;
return;
}
}
hasNext = false;
}
public boolean hasNext()
{
return hasNext;
}
public T next()
{
T next = current.next();
prepareNext();
return next;
}
};
};
}