From c82e3b3b2de0633317ec8fc85925e91422820597 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Sun, 8 Oct 2017 22:39:59 -0300 Subject: Start splitting into maven modules --- .../main/java/bjc/utils/data/SingleSupplier.java | 72 ---------------------- 1 file changed, 72 deletions(-) delete mode 100644 BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java b/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java deleted file mode 100644 index c675ebf..0000000 --- a/BJC-Utils2/src/main/java/bjc/utils/data/SingleSupplier.java +++ /dev/null @@ -1,72 +0,0 @@ -package bjc.utils.data; - -import java.util.function.Supplier; - -/** - * A supplier that can only supply one value. - * - * Attempting to retrieve another value will cause an exception to be thrown. - * - * @author ben - * - * @param - * The supplied type - */ -public class SingleSupplier implements Supplier { - private static long nextID = 0; - - private final Supplier source; - - private boolean gotten; - - private final long id; - - /* - * This is bad practice, but I want to know where the single - * instantiation was, in case of duplicate initiations. - */ - private Exception instSite; - - /** - * Create a new single supplier from an existing value - * - * @param supp - * The supplier to give a single value from - */ - public SingleSupplier(final Supplier supp) { - source = supp; - - gotten = false; - - id = nextID++; - } - - @Override - public T get() { - if (gotten == true) { - final String msg = String.format( - "Attempted to retrieve value more than once from single supplier #%d", id); - - final IllegalStateException isex = new IllegalStateException(msg); - - isex.initCause(instSite); - - throw isex; - } - - gotten = true; - - try { - throw new IllegalStateException("Previous instantiation here."); - } catch (final IllegalStateException isex) { - instSite = isex; - } - - return source.get(); - } - - @Override - public String toString() { - return String.format("SingleSupplier [source='%s', gotten=%s, id=%s]", source, gotten, id); - } -} -- cgit v1.2.3