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

com.tinkerpop.gremlin.util.StreamFactory Maven / Gradle / Ivy

package com.tinkerpop.gremlin.util;

import java.util.Arrays;
import java.util.Iterator;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

/**
 * Utility methods for constructing {@link java.util.stream.Stream} objects.
 *
 * @author Marko A. Rodriguez (http://markorodriguez.com)
 */
public class StreamFactory {

    /**
     * Construct a {@link java.util.stream.Stream} from an {@link Iterable}.
     */
    public static  Stream stream(final Iterable iterable) {
        return StreamFactory.stream(iterable.iterator());
    }

    /**
     * Construct a parallel {@link java.util.stream.Stream} from an {@link Iterable}.
     */
    public static  Stream parallelStream(final Iterable iterable) {
        return StreamFactory.parallelStream(iterable.iterator());
    }

    /**
     * Construct a {@link java.util.stream.Stream} from an {@link java.util.Iterator}.
     */
    public static  Stream stream(final Iterator iterator) {
        return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.IMMUTABLE), false);
    }

    /**
     * Construct a parallel {@link java.util.stream.Stream} from an {@link java.util.Iterator}.
     */
    public static  Stream parallelStream(final Iterator iterator) {
        return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.IMMUTABLE), true);
    }

    /**
     * Construct an {@link Iterable} from an {@link java.util.stream.Stream}.
     */
    public static  Iterable iterable(final Stream stream) {
        return () -> stream.iterator();
    }

    public static  Stream stream(final T t) {
        return Arrays.asList(t).stream();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy