package org.aksw.jena_sparql_api.util.collection;
import java.util.function.Function;
import java.util.stream.Stream;
import org.aksw.commons.util.contextual.AbstractDelegated;
import com.google.common.collect.Range;
public class RangedSupplierTransform<I extends Comparable<I>, T, U>
extends AbstractDelegated<RangedSupplier<I, U>>
implements RangedSupplier<I, T>
{
protected Function<Stream<U>, Stream<T>> transform;
// public RangedSupplierTransform(RangedSupplier<I, U> delegate, Function<U, T> itemTransform) {
// this(delegate, (s) -> s.map(itemTransform));
// }
public RangedSupplierTransform(RangedSupplier<I, U> delegate, Function<Stream<U>, Stream<T>> streamTransform) {
super(delegate);
}
@Override
public Stream<T> apply(Range<I> range) {
Stream<U> tmp = delegate.apply(range);
Stream<T> result = transform.apply(tmp);
return result;
}
}