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 extends Spliterators.AbstractSpliterator { private final Enumeration enumeration; public EnumerationSpliterator(long est, int additionalCharacteristics, Enumeration enumeration) { super(est, additionalCharacteristics); this.enumeration = enumeration; } @Override public boolean tryAdvance(Consumer action) { if (enumeration.hasMoreElements()) { action.accept(enumeration.nextElement()); return true; } return false; } @Override public void forEachRemaining(Consumer action) { while (enumeration.hasMoreElements()) action.accept(enumeration.nextElement()); } public static Stream stream(Enumeration enumeration) { EnumerationSpliterator spliterator = new EnumerationSpliterator<>(Long.MAX_VALUE, Spliterator.ORDERED, enumeration); return StreamSupport.stream(spliterator, false); } }