
org.sfm.utils.ForEachIteratorSpliterator Maven / Gradle / Ivy
package org.sfm.utils;
import java.util.Spliterator;
import java.util.function.Consumer;
public class ForEachIteratorSpliterator implements Spliterator {
private final ForEachIterator iterator;
public ForEachIteratorSpliterator(ForEachIterator iterator) {
this.iterator = iterator;
}
@Override
public boolean tryAdvance(Consumer super T> action) {
try {
return iterator.next(new RowHandler() {
@Override
public void handle(T t) throws Exception {
action.accept(t);
}
});
} catch (Exception e) {
return ErrorHelper.rethrow(e);
}
}
@Override
public void forEachRemaining(Consumer super T> action) {
try {
iterator.forEach(new RowHandler() {
@Override
public void handle(T t) throws Exception {
action.accept(t);
}
});
} catch (Exception e) {
ErrorHelper.rethrow(e);
}
}
@Override
public Spliterator trySplit() {
return null;
}
@Override
public long estimateSize() {
return Long.MAX_VALUE;
}
@Override
public int characteristics() {
return Spliterator.ORDERED | Spliterator.NONNULL;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy