All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softicar.platform.common.container.iterable.concat.ConcatIterable Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
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);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy