com.softicar.platform.common.container.iterable.concat.ConcatIterable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.container.iterable.concat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
/**
* An {@link Iterable} that concatenates multiple {@link Iterable} instances.
*
* @author Oliver Richers
*/
public class ConcatIterable implements Iterable {
private final Collection> iterables;
public ConcatIterable() {
this.iterables = new ArrayList<>();
}
public ConcatIterable(Collection> iterables) {
this.iterables = new ArrayList<>(iterables);
}
@SafeVarargs
public ConcatIterable(Iterable...iterables) {
this.iterables = Arrays.asList(iterables);
}
public ConcatIterable add(Iterable iterable) {
this.iterables.add(iterable);
return this;
}
public ConcatIterable add(Iterator iterator) {
this.iterables.add(() -> iterator);
return this;
}
public ConcatIterable addAll(Collection> iterables) {
this.iterables.addAll(iterables);
return this;
}
@Override
public Iterator iterator() {
return new ConcatIterator<>(iterables);
}
}