picard.util.Iterators Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of picard Show documentation
Show all versions of picard Show documentation
A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.
package picard.util;
import java.util.Iterator;
import java.util.Optional;
/**
* @author mccowan
*/
public class Iterators {
public static AtomicIterator atomicIteratorOf(final Iterable backingIterable) {
return atomicIteratorOf(backingIterable.iterator());
}
public static AtomicIterator atomicIteratorOf(final Iterator backingIterator) {
final Object monitor = new Object();
return () -> {
synchronized (monitor) {
return backingIterator.hasNext() ? Optional.ofNullable(backingIterator.next()) : Optional.empty();
}
};
}
}