Atom implements Topology
authoradam <adam@megacz.com>
Mon, 2 Jan 2006 02:30:29 +0000 (21:30 -0500)
committeradam <adam@megacz.com>
Mon, 2 Jan 2006 02:30:29 +0000 (21:30 -0500)
darcs-hash:20060102023029-5007d-776e61936cd54692719ce80500103159e0c075ec.gz

src/edu/berkeley/sbp/Atom.java

index 0722d0b..8c702a1 100644 (file)
@@ -8,7 +8,7 @@ import edu.berkeley.sbp.*;
 import edu.berkeley.sbp.*;
 
 /** an element which matches exactly one input token */
 import edu.berkeley.sbp.*;
 
 /** an element which matches exactly one input token */
-public abstract class Atom<T extends Token> extends Element {
+public abstract class Atom<T extends Token> extends Element implements Topology<T> {
 
     private final Topology<T> rt;
 
 
     private final Topology<T> rt;
 
@@ -26,5 +26,22 @@ public abstract class Atom<T extends Token> extends Element {
 
     /** declared abstract to force subclasses to override it in a useful manner */
     public abstract String toString();
 
     /** declared abstract to force subclasses to override it in a useful manner */
     public abstract String toString();
+
+    // Topology Thunks //////////////////////////////////////////////////////////////////////////////
+
+    public void              add(Topology<T> t)         { rt.add(t); }
+    public void              add(T t)                   { rt.add(t); }
+    public void              remove(Topology<T> t)      { rt.remove(t); }
+    public void              remove(T t)                { rt.remove(t); }
+    public Topology<T>       dup()                      { return rt.dup(); }
+    public boolean           contains(T v)              { return rt.contains(v); }
+    public Topology<T>       fresh()                    { return rt.fresh(); }
+    public Topology<T>       intersect(Topology<T> t)   { return rt.intersect(t); }
+    public Topology<T>       minus(Topology<T> t)       { return rt.minus(t); }
+    public Topology<T>       union(Topology<T> t)       { return rt.union(t); }
+    public Topology<T>       complement()               { return rt.complement(); }
+    public boolean           disjoint(Topology<T> t)    { return rt.disjoint(t); }
+    public boolean           containsAll(Topology<T> t) { return rt.containsAll(t); }
+    
 }
 
 }