added some files
authoradam <adam@megacz.com>
Sun, 8 Jan 2006 09:37:42 +0000 (04:37 -0500)
committeradam <adam@megacz.com>
Sun, 8 Jan 2006 09:37:42 +0000 (04:37 -0500)
darcs-hash:20060108093742-5007d-0cfa629c91309e0673571c055b0ef877f1f428d9.gz

src/edu/berkeley/sbp/util/Invokable.java [new file with mode: 0644]
src/edu/berkeley/sbp/util/SingletonIterator.java [new file with mode: 0644]
src/edu/berkeley/sbp/util/VisitableMap.java [new file with mode: 0644]

diff --git a/src/edu/berkeley/sbp/util/Invokable.java b/src/edu/berkeley/sbp/util/Invokable.java
new file mode 100644 (file)
index 0000000..7864410
--- /dev/null
@@ -0,0 +1,11 @@
+package edu.berkeley.sbp.util;
+import edu.berkeley.sbp.util.*;
+import edu.berkeley.sbp.*;
+import java.io.*;
+import java.util.*;
+import java.lang.reflect.*;
+import java.lang.ref.*;
+
+public interface Invokable<A,B,C> {
+    public void invoke(A a, B b, C c);
+}
diff --git a/src/edu/berkeley/sbp/util/SingletonIterator.java b/src/edu/berkeley/sbp/util/SingletonIterator.java
new file mode 100644 (file)
index 0000000..108b56c
--- /dev/null
@@ -0,0 +1,15 @@
+package edu.berkeley.sbp.util;
+import java.util.*;
+
+public final class SingletonIterator<T> implements Iterator<T>, Iterable<T> {
+
+    private boolean spent = false;
+    private final T t;
+
+    public SingletonIterator(T t) { this.t = t; }
+
+    public void    remove()       { throw new Error(); }
+    public boolean hasNext()      { return !spent; }
+    public T       next()         { spent = true; return t; }
+    public Iterator<T> iterator() { return this; }
+}
diff --git a/src/edu/berkeley/sbp/util/VisitableMap.java b/src/edu/berkeley/sbp/util/VisitableMap.java
new file mode 100644 (file)
index 0000000..ab41a81
--- /dev/null
@@ -0,0 +1,7 @@
+package edu.berkeley.sbp.util;
+import java.util.*;
+
+public interface VisitableMap<K,V> {
+    public <B,C> void invoke(K k, Invokable<V,B,C> ivbc, B b, C c);
+    public boolean contains(K k);
+}