1 package com.irtimaled.bbor.client.providers;
3 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
5 import java.util.Iterator;
6 import java.util.function.Supplier;
9 private static class Empty<T> implements Iterable<T> {
11 public Iterator<T> iterator() {
12 return new Iterator<T>() {
14 public boolean hasNext() {
26 static <T extends AbstractBoundingBox> Iterable<T> empty() {
30 private static class SingletonIterable<T> implements Iterable<T> {
31 private final Supplier<T> supplier;
33 private SingletonIterable(Supplier<T> supplier) {
34 this.supplier = supplier;
38 public Iterator<T> iterator() {
39 return new Iterator<T>() {
40 private boolean hasNext = true;
42 public boolean hasNext() {
48 if(!hasNext) return null;
51 return supplier.get();
57 public static <T extends AbstractBoundingBox> Iterable<T> singleton(final Supplier<T> supplier) {
58 return new SingletonIterable<>(supplier);