35 lines
1.2 KiB
Java
35 lines
1.2 KiB
Java
package io.gitlab.jfronny.libjf.config.plugin.util;
|
|
|
|
import java.util.*;
|
|
import java.util.function.Consumer;
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.StreamSupport;
|
|
|
|
public class EnumerationSpliterator<T> extends Spliterators.AbstractSpliterator<T> {
|
|
private final Enumeration<T> enumeration;
|
|
|
|
public EnumerationSpliterator(long est, int additionalCharacteristics, Enumeration<T> enumeration) {
|
|
super(est, additionalCharacteristics);
|
|
this.enumeration = enumeration;
|
|
}
|
|
|
|
@Override
|
|
public boolean tryAdvance(Consumer<? super T> action) {
|
|
if (enumeration.hasMoreElements()) {
|
|
action.accept(enumeration.nextElement());
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void forEachRemaining(Consumer<? super T> action) {
|
|
while (enumeration.hasMoreElements())
|
|
action.accept(enumeration.nextElement());
|
|
}
|
|
|
|
public static <T> Stream<T> stream(Enumeration<T> enumeration) {
|
|
EnumerationSpliterator<T> spliterator = new EnumerationSpliterator<>(Long.MAX_VALUE, Spliterator.ORDERED, enumeration);
|
|
return StreamSupport.stream(spliterator, false);
|
|
}
|
|
} |