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

org.davidmoten.kool.internal.operators.stream.ToSingle Maven / Gradle / Ivy

There is a newer version: 0.1.36
Show newest version
package org.davidmoten.kool.internal.operators.stream;

import java.util.NoSuchElementException;

import org.davidmoten.kool.Single;
import org.davidmoten.kool.Stream;
import org.davidmoten.kool.StreamIterator;

public class ToSingle implements Single {

    private final Stream stream;

    public ToSingle(Stream stream) {
        this.stream = stream;
    }

    @Override
    public T get() {
        StreamIterator it = stream.iteratorNullChecked();
        try {
            if (it.hasNext()) {
                T v = it.nextNullChecked();
                if (it.hasNext()) {
                    throw new IllegalArgumentException("stream must only have one element but has more");
                } else {
                    return v;
                }
            } else {

                throw new NoSuchElementException();
            }
        } finally {
            it.dispose();
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy